Новые возможности TrayIcon

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Новые возможности TrayIcon

Сообщение Maxizar » 05.11.2010 14:34:20

В принципе совсем недавно я выкладывал в разделе Компоненты и примеры свой компонент TAnimateTrayIcon. Предназначен для возможности через ImageList проводить анимацию иконки. (Этой возможности у компонента TrayIcon просто не было) Но что я увидел скачав новую сборку Lazarusa (svn 28047) визуально в инспекторе обьектов ничего не изменилось… но открываем исходники и что я увидел: Реализацию анимации..
Собственно вопрос: Почему в раздел published не вынесены настройки анимации скажем AnimateInterval, Animate и т.п. ? (их от нас просто скрыли забыли чтоль?
Где вообще можно прочитать о будущих возможных изменениях функционала компонентов? (не об исправлениях, а именно увеличении и изменении функционала).
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14

Re: Новые возможности TrayIcon

Сообщение Odyssey » 05.11.2010 15:02:21

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
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Новые возможности TrayIcon

Сообщение Maxizar » 06.11.2010 12:36:31

Odyssey - Спасибо за развернутый ответ буду знать :).
Не буду открывать новую тему задам тут.
есть бага под номером 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 зачем все запутали или это ошибочное впечатление? :(
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14

Re: Новые возможности TrayIcon

Сообщение Mr.Smart » 06.11.2010 12:49:36

Смотрите билиотеки виджетов.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Новые возможности TrayIcon

Сообщение m_guest » 06.11.2010 12:56:22

LM_LBUTTONDBLCLK объявлена в lmessages.pp (\lazarus\lcl\)
m_guest
постоялец
 
Сообщения: 193
Зарегистрирован: 14.08.2005 15:10:21

Re: Новые возможности TrayIcon

Сообщение Maxizar » 06.11.2010 13:02:41

m_guest писал(а):LM_LBUTTONDBLCLK объявлены в lmessages.pp (C:lazaruslcl)
Да это я знаю, мне интересно где происходит перехвать данного сообщения в компоненте TrayIcon.
Mr.Smart - Хм... а можно поподробнее. Можно даже с описанием. я так понимаю типа сделали общий перехват для виджетов.... и где то идет их обработка, а где если не секрет... Простите если уже надоел, просто я хочу разобраться... :)

Добавлено спустя 2 часа 40 минут 56 секунд:
Мда... нашел я наконец то где кошка зарыта: win32trayicon.inc я правда так и не понял как этот файл подключается и где вызываются функции этого модуля... но перехват сообщений делает именно он (показала пошаговая отладка)... сделано через одно место... ИМХО... почему сделали так запутано а не так скажем как в TControl, для меня осталось загадкой.. что касается баги то в принцыпе судя по коду эта даже не бага а фича. Идет обработка каждого WM_LBUTTONUP. по этому происходит двойной вызов OnClick.. до и после DblClick.
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14

Re: Новые возможности TrayIcon

Сообщение Brainenjii » 06.11.2010 18:23:10

Кстати, да ^_^ Не совсем в тему, но когда в системе умер DblClick (в реестре DoubleClickHeight почему-то установилось в 1, вместо дефолтных 4) - в приложениях, написанных на лазаре, события по двойному щелчку продолжали срабатывать ^_^
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 47

Рейтинг@Mail.ru