Автор Тема: Разработка плагинов - FAQ  (Прочитано 7193 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Дмитрий Маслов

  • Администратор
  • Маэстро
  • *****
  • Сообщений: 6138
  • Репутация +220/-19
  • Я делаю мир таким!
    • Просмотр профиля
Разработка плагинов - FAQ
« : 26 Мая 2010, 09:23:52 »
В этой ветки публикуются типичные вопросы по написанию плагинов и ответы к ним.

Оффлайн Дмитрий Маслов

  • Администратор
  • Маэстро
  • *****
  • Сообщений: 6138
  • Репутация +220/-19
  • Я делаю мир таким!
    • Просмотр профиля
Re: Разработка плагинов - FAQ
« Ответ #1 : 26 Мая 2010, 09:24:19 »
Вопрос следующий: какие dtBegin, dtEnd надо передавать, чтобы задача создавалась без сроков? (передача NULL, 0 создает задачу с датами начала и окончания задачи)
dtBegin = AddinLT_GetMinDate();
dtEnd = AddinLT_GetMaxDate();

Оффлайн Дмитрий Маслов

  • Администратор
  • Маэстро
  • *****
  • Сообщений: 6138
  • Репутация +220/-19
  • Я делаю мир таким!
    • Просмотр профиля
Re: Разработка плагинов - FAQ
« Ответ #2 : 12 Мая 2012, 18:20:59 »
Как у задачи установить только дату, без времени? То есть, в календаре она должна отображаться в области многодневных задач.
Задача на весь день это задача со временем = 00:00:00 - 23:59:59

Оффлайн Джон Локк

  • Новичок
  • *
  • Сообщений: 28
  • Репутация +2/-0
  • пушдыба́тн
    • Просмотр профиля
Re: Разработка плагинов - FAQ
« Ответ #3 : 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 );
пушдыба́т'н

Оффлайн Дмитрий Маслов

  • Администратор
  • Маэстро
  • *****
  • Сообщений: 6138
  • Репутация +220/-19
  • Я делаю мир таким!
    • Просмотр профиля
Re: Разработка плагинов - FAQ
« Ответ #4 : 16 Января 2014, 17:00:59 »
Установить у задачи прочитана она или нет

Оффлайн Джон Локк

  • Новичок
  • *
  • Сообщений: 28
  • Репутация +2/-0
  • пушдыба́тн
    • Просмотр профиля
Re: Разработка плагинов - FAQ
« Ответ #5 : 17 Января 2014, 02:49:00 »
А какие значения возвращает BOOL AddinLT_Task_SaveChanges( LPCWSTR szUID )?
У меня выдаёт всегда false, хотя  запись проходит нормально. И VC++6, и Delphi 7.
В случае ошибки будет выдано true? Или эта функция осмысленный ответ не возвращает?
« Последнее редактирование: 17 Января 2014, 04:14:04 от Джон Локк »
пушдыба́т'н

Оффлайн Дмитрий Маслов

  • Администратор
  • Маэстро
  • *****
  • Сообщений: 6138
  • Репутация +220/-19
  • Я делаю мир таким!
    • Просмотр профиля
Re: Разработка плагинов - FAQ
« Ответ #6 : 03 Марта 2015, 13:46:19 »
А какие значения возвращает BOOL AddinLT_Task_SaveChanges( LPCWSTR szUID )?
У меня выдаёт всегда false, хотя  запись проходит нормально. И VC++6, и Delphi 7.
В случае ошибки будет выдано true? Или эта функция осмысленный ответ не возвращает?
На текущий момент эта функция всегда возвращает FALSE (0) - поправим в следующей версии

Оффлайн toto111

  • Новичок
  • *
  • Сообщений: 23
  • Репутация +1/-0
    • Просмотр профиля
Re: Разработка плагинов - FAQ
« Ответ #7 : 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

Оффлайн igorguryanov

  • Новичок
  • *
  • Сообщений: 2
  • Репутация +0/-0
    • Просмотр профиля
Re: Разработка плагинов - FAQ
« Ответ #8 : 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 вылетает...

Оффлайн Джон Локк

  • Новичок
  • *
  • Сообщений: 28
  • Репутация +2/-0
  • пушдыба́тн
    • Просмотр профиля
Re: Разработка плагинов - FAQ
« Ответ #9 : 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);
« Последнее редактирование: 30 Октября 2015, 16:22:10 от Джон Локк »
пушдыба́т'н

Оффлайн igorguryanov

  • Новичок
  • *
  • Сообщений: 2
  • Репутация +0/-0
    • Просмотр профиля
Re: Разработка плагинов - FAQ
« Ответ #10 : 04 Ноября 2015, 08:53:36 »
У меня GetRecurrence работает примерно так:
Спасибо!
Но я вроде бы точно так же делал, однако ЛТ вылетал...
Ну да ладно, пока что необходимость в этих функциях у меня отпала :))

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

P.s. Пишу на Лазарусе, если что.

Оффлайн Maks-jamo

  • Новичок
  • *
  • Сообщений: 26
  • Репутация +1/-0
    • Просмотр профиля
Re: Разработка плагинов - FAQ
« Ответ #11 : 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('тыр тыр') ); - тут тоже ничто , никуда не записывается