В принципе совсем недавно я выкладывал в разделе Компоненты и примеры свой компонент TAnimateTrayIcon. Предназначен для возможности через ImageList проводить анимацию иконки. (Этой возможности у компонента TrayIcon просто не было) Но что я увидел скачав новую сборку Lazarusa (svn 28047) визуально в инспекторе обьектов ничего не изменилось… но открываем исходники и что я увидел: Реализацию анимации..
Собственно вопрос: Почему в раздел published не вынесены настройки анимации скажем AnimateInterval, Animate и т.п. ? (их от нас просто скрыли забыли чтоль?
Где вообще можно прочитать о будущих возможных изменениях функционала компонентов? (не об исправлениях, а именно увеличении и изменении функционала).
Новые возможности TrayIcon
Модератор: Модераторы
Maxizar писал(а):Почему в раздел published не вынесены настройки анимации скажем AnimateInterval, Animate и т.п. ? (их от нас просто скрыли забыли чтоль?
Ответ знает только тот, кто делал эту анимацию. Предположений может быть много:
1) он просто забыл сделать их published;
2) он специально не стал делать их published, потому что реализация ещё не очень стабильна и пользоваться ей рано;
3) он хочет чтобы старые версии Lazarus нормально открывали форму с TrayIcon а не ругались на неизвестные published-свойства
Чтобы узнать наверняка, можно попробовать спросить в рассылке: http://lists.lazarus.freepascal.org/mai ... fo/lazarus
Maxizar писал(а):Где вообще можно прочитать о будущих возможных изменениях функционала компонентов? (не об исправлениях, а именно увеличении и изменении функционала).
О будущих запланированных -- http://wiki.lazarus.freepascal.org/Roadmap, http://wiki.lazarus.freepascal.org/Lazarus_0.9.30_todo, http://lazarus-dev.blogspot.com/
О "будущих возможных" -- скорее всего нигде. Если только в рассылке, и то вряд ли. Потому что хорошим правилом считается сначала делать, а потом говорить. Особенно когда разработка ведётся в свободное время и никаких гарантий по срокам и выполнению никто не даёт.
Поэтому если появляется идея фичи, есть смысл спросить в рассылке:
1) не сделал ли кто-то это уже
2) не занимается ли кто-то этой проблемой в данный момент
и уже дальше связываться с этим человеком и обсуждать наработки и планы.
Odyssey - Спасибо за развернутый ответ буду знать
.
Не буду открывать новую тему задам тут.
есть бага под номером 15238. Кстати под Win32 бага такая же. Решил посмотреть в чем может быть причина. И я не смог разобраться вообще где что находится... А именно: "Где запрятаны сообщения типа LM_LBUTTONDBLCLK вот скажем для Image переход к родителю приводит к TControl = class(TLCLComponent) и все становится ясно"
Внутри которых и вызываются события переопределенные пользователем.
В TrayIcon где эти концы, где перехват сообщений?...
Мои раскопки были такими:
Переход к родителю:TTrayIcon <-TCustomTrayIcon <-TLCLComponen <-TComponent <-(TPersistent,IUnknown,IInterfaceComponentReference) <-TObject
IUnknown,IInterfaceComponentReference - вообще интерфейсы... Где запрятали перехват сообщений ну хотябы где отрыть LM_LBUTTONDBLCLK
И кстати на счет общего впечатления от TrayIcon зачем все запутали или это ошибочное впечатление?
Не буду открывать новую тему задам тут.
есть бага под номером 15238. Кстати под Win32 бага такая же. Решил посмотреть в чем может быть причина. И я не смог разобраться вообще где что находится... А именно: "Где запрятаны сообщения типа LM_LBUTTONDBLCLK вот скажем для Image переход к родителю приводит к TControl = class(TLCLComponent) и все становится ясно"
Код: Выделить всё
procedure WMLButtonDBLCLK(var Message: TLMLButtonDblClk); message LM_LBUTTONDBLCLK;
procedure WMRButtonDBLCLK(var Message: TLMRButtonDblClk); message LM_RBUTTONDBLCLK;
procedure WMMButtonDBLCLK(var Message: TLMMButtonDblClk); message LM_MBUTTONDBLCLK;
procedure WMXButtonDBLCLK(var Message: TLMXButtonDblClk); message LM_XBUTTONDBLCLK;
Внутри которых и вызываются события переопределенные пользователем.
В TrayIcon где эти концы, где перехват сообщений?...
Мои раскопки были такими:
Переход к родителю:TTrayIcon <-TCustomTrayIcon <-TLCLComponen <-TComponent <-(TPersistent,IUnknown,IInterfaceComponentReference) <-TObject
IUnknown,IInterfaceComponentReference - вообще интерфейсы... Где запрятали перехват сообщений ну хотябы где отрыть LM_LBUTTONDBLCLK
И кстати на счет общего впечатления от TrayIcon зачем все запутали или это ошибочное впечатление?
Смотрите билиотеки виджетов.
LM_LBUTTONDBLCLK объявлена в lmessages.pp (\lazarus\lcl\)
Да это я знаю, мне интересно где происходит перехвать данного сообщения в компоненте TrayIcon.m_guest писал(а):LM_LBUTTONDBLCLK объявлены в lmessages.pp (C:lazaruslcl)
Mr.Smart - Хм... а можно поподробнее. Можно даже с описанием. я так понимаю типа сделали общий перехват для виджетов.... и где то идет их обработка, а где если не секрет... Простите если уже надоел, просто я хочу разобраться...
Добавлено спустя 2 часа 40 минут 56 секунд:
Мда... нашел я наконец то где кошка зарыта: win32trayicon.inc я правда так и не понял как этот файл подключается и где вызываются функции этого модуля... но перехват сообщений делает именно он (показала пошаговая отладка)... сделано через одно место... ИМХО... почему сделали так запутано а не так скажем как в TControl, для меня осталось загадкой.. что касается баги то в принцыпе судя по коду эта даже не бага а фича. Идет обработка каждого WM_LBUTTONUP. по этому происходит двойной вызов OnClick.. до и после DblClick.
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
Кстати, да ^_^ Не совсем в тему, но когда в системе умер DblClick (в реестре DoubleClickHeight почему-то установилось в 1, вместо дефолтных 4) - в приложениях, написанных на лазаре, события по двойному щелчку продолжали срабатывать ^_^
