Сообщество LeaderTask

Ресурсы => Плагины => Разработка плагинов / Обсуждение API => Тема начата: Дмитрий Маслов от 26 Мая 2010, 09:23:52

Название: Разработка плагинов - FAQ
Отправлено: Дмитрий Маслов от 26 Мая 2010, 09:23:52
В этой ветки публикуются типичные вопросы по написанию плагинов и ответы к ним.
Название: Re: Разработка плагинов - FAQ
Отправлено: Дмитрий Маслов от 26 Мая 2010, 09:24:19
Вопрос следующий: какие dtBegin, dtEnd надо передавать, чтобы задача создавалась без сроков? (передача NULL, 0 создает задачу с датами начала и окончания задачи)
dtBegin = AddinLT_GetMinDate();
dtEnd = AddinLT_GetMaxDate();
Название: Re: Разработка плагинов - FAQ
Отправлено: Дмитрий Маслов от 12 Мая 2012, 18:20:59
Как у задачи установить только дату, без времени? То есть, в календаре она должна отображаться в области многодневных задач.
Задача на весь день это задача со временем = 00:00:00 - 23:59:59
Название: Re: Разработка плагинов - FAQ
Отправлено: Джон Локк от 15 Января 2014, 23:47:41
Скажите пожалуйста, что это за функции:
ADDIN_LT_DLL BOOL AddinLT_Task_GetNotRead( LPCWSTR szUID );
ADDIN_LT_DLL BOOL AddinLT_Task_SetNotRead( LPCWSTR szUID, BOOL bSet );
Название: Re: Разработка плагинов - FAQ
Отправлено: Дмитрий Маслов от 16 Января 2014, 17:00:59
Установить у задачи прочитана она или нет
Название: Re: Разработка плагинов - FAQ
Отправлено: Джон Локк от 17 Января 2014, 02:49:00
А какие значения возвращает BOOL AddinLT_Task_SaveChanges( LPCWSTR szUID )?
У меня выдаёт всегда false, хотя  запись проходит нормально. И VC++6, и Delphi 7.
В случае ошибки будет выдано true? Или эта функция осмысленный ответ не возвращает?
Название: Re: Разработка плагинов - FAQ
Отправлено: Дмитрий Маслов от 03 Марта 2015, 13:46:19
А какие значения возвращает BOOL AddinLT_Task_SaveChanges( LPCWSTR szUID )?
У меня выдаёт всегда false, хотя  запись проходит нормально. И VC++6, и Delphi 7.
В случае ошибки будет выдано true? Или эта функция осмысленный ответ не возвращает?
На текущий момент эта функция всегда возвращает FALSE (0) - поправим в следующей версии
Название: Re: Разработка плагинов - FAQ
Отправлено: toto111 от 30 Сентября 2015, 18:19:12
Добрый день, интересует стоимость написания плагинов на заказ для  LT , кто за сколько сумеет сделать или знает где делают ? 

1) Кнопка для записи параметра " время пока нажата кнопка"   http://forum.leadertask.ru/index.php/topic,10657.0.html http://forum.leadertask.ru/index.php/topic,10660.0.html

2) Возможность подключить камеру http://forum.leadertask.ru/index.php/topic,10668.0.html
Название: Re: Разработка плагинов - FAQ
Отправлено: igorguryanov от 29 Октября 2015, 08:48:31
Подскажите пожалуйста, как правильно передавать параметры UINT* и DATE* в Delphi? Например, для этой функции:
ADDIN_LT_DLL BOOL AddinLT_Task_GetNextRecurrenceDate( LPCWSTR szUID, UINT* pDaysCount, DATE* pDateBegin, DATE* pDateEnd );

Я и так пробовал:
function AddinLT_Task_GetNextRecurrenceDate(szUID: PWideChar; pDaysCount: PLongWord; pDateBegin, pDateEnd: PDateTime): Boolean; cdecl; external 'lt_plugins.dll';и так:
function AddinLT_Task_GetNextRecurrenceDate(szUID: PWideChar; pDaysCount, pDateBegin, pDateEnd: Pointer): Boolean; cdecl; external 'lt_plugins.dll';Вызываю, соответственно, так:
var
  pDaysCount: LongWord;
  pDateBegin, pDateEnd: TDateTime;
...
  AddinLT_Task_GetNextRecurrenceDate(szUID, @pDaysCount, @pDateBegin, @pDateEnd);

В обоих случаях LT вылетает...
Название: Re: Разработка плагинов - FAQ
Отправлено: Джон Локк от 30 Октября 2015, 16:13:23
У меня GetRecurrence работает примерно так:

// PluginElems.pas

// ADDIN_LT_DLL BOOL AddinLT_Task_GetRecurrence(
//   LPCWSTR szUID,
//   // ...
//   UINT* piRecurrenceYearDayOfWeek,
//   DATE* pdtRecurrenceEnd
// ); CDecl; External 'lt_plugins.dll';

Function AddinLT_Task_GetRecurrence(
  szUID: PWideChar;
  // ...
  iRecurrenceYearDayOfWeek: pLongWord;
  dtRecurrenceEnd: pDateTime
): Boolean; CDecl; External 'lt_plugins.dll';

// Unit1.pas

var
  cUID: pWidechar;
  // ...
  iRecYearDayOfWeek: LongWord;
  dtRecEnd: TDateTime;

procedure Procedure1(); CDecl;
begin
  AddinLT_Task_GetRecurrence(
    cUID,
    // ...
    @iRecYearDayOfWeek,
    @dtRecEnd);
Название: Re: Разработка плагинов - FAQ
Отправлено: igorguryanov от 04 Ноября 2015, 08:53:36
У меня GetRecurrence работает примерно так:
Спасибо!
Но я вроде бы точно так же делал, однако ЛТ вылетал...
Ну да ладно, пока что необходимость в этих функциях у меня отпала :))

Подскажите, пожалуйста, еще один вопросик: если я создаю какие-нибудь объекты в секции initialization, то где мне их удалять? Вот такой код приводит к зависанию ЛТ при выходе:
initialization
  DM := TDM.Create(nil);
finalization
  DM.Free;

P.s. Пишу на Лазарусе, если что.
Название: Re: Разработка плагинов - FAQ
Отправлено: Maks-jamo от 12 Ноября 2015, 18:44:47
// ADDIN_LT_DLL LPCWSTR AddinLT_Task_GetRTFComment( LPCWSTR szUID );             RTF comment получить не получается :( 
Function AddinLT_Task_GetRTFComment(szUID: PWideChar): PWideChar; CDecl;
External 'lt_plugins.dll';

// ADDIN_LT_DLL BOOL AddinLT_Task_SetRTFComment(
// LPCWSTR szUID,
// LPCWSTR szRTF
// );
Function AddinLT_Task_SetRTFComment(szUID: PWideChar; szRTF: PWideChar)
  : Boolean; CDecl; External 'lt_plugins.dll';

// ADDIN_LT_DLL LPCWSTR AddinLT_Task_GetRTFResult( LPCWSTR szUID );               RTF result получить не получается :( 
Function AddinLT_Task_GetRTFResult(szUID: PWideChar): PWideChar; CDecl;
External 'lt_plugins.dll';

// ADDIN_LT_DLL BOOL AddinLT_Task_SetRTFResult( LPCWSTR szUID, LPCWSTR szRTF );
Function AddinLT_Task_SetRTFResult(szUID: PWideChar; szRTF: PWideChar)
  : Boolean; CDecl; External 'lt_plugins.dll';

Не пойму как работать с этими процедурами. Не могу ни получить запись RTF комментария ни поставить свою. Всегда получаю пустую строку.
AddinLT_Task_SetRTFComment(szTaskUID, StrToWChar('тыр тыр') ); - тут тоже ничто , никуда не записывается