Глюки PopupMenu при TrayIcon (Win7)

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

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

Глюки PopupMenu при TrayIcon (Win7)

Сообщение nowa » 13.07.2012 23:03:35

Столкнулся со следующей проблемой. Есть значок в трее, который создается прямо в проекте, т.е. главной формы как бы и нет. По щелчку правой кнопкой мыши показывается меню, присвоенное через свойство PopupMenu...
Но вот нужно мне еще меню и по левой кнопке... Создал еще PopupMenu (тоже динамически), на клик мышью делаю Popup. Меню показывается, все работает, но.... Если никакой из пунктов не выбирать, а просто еще раз щелкнуть, то начинаются уже глюки... Остается левый верхний прямоугольник и потом уже сколько не кликай, все равно, меню не покажется... Но если пощелкать также правой кнопкой, то все ОК... Если после этого снова щелкнуть левой, то все ОК...

Залез в исходные коды, есть функция TrayWndProc, которая и рулит этим процессом... Там есть следующий код:
Код: Выделить всё
// Apparently SetForegroundWindow and PostMessage are necessary
          // because we're invoking the shortcut menu from a notification icon
          // This is an attempt to prevent from messing with the Z-order
          SetForegroundWindow(Handle);
          PostMessage(Handle, WM_NULL, 0, 0);
          vwsTrayIcon.PopUpMenu.Popup(pt.x, pt.y);


Не нашел где вызывается и как передается Handle, но есть подозрение (и находил в Инете) описание, что надо передать хендл окна... Но окна-то нет при запуске приложения - оно создается также динамически!!!

Что передавать? Пробовал по аналогии передавать Handle PopupMenu - все тоже самое...

При Create PopupMenu создаю с параметром nil, Parent не присваиваю... Может в этом дело!? Но непонятно, что присвоить!

Добавлено спустя 11 часов 48 минут 6 секунд:
Подскажите, люди...

Забыл написать, Win 7, Lazarus 0.9.30.4, FPC: 2.6.0.
nowa
незнакомец
 
Сообщения: 2
Зарегистрирован: 13.07.2012 22:53:15

Re: Глюки PopupMenu при TrayIcon (Win7)

Сообщение nowa » 17.07.2012 20:57:47

Решил проблему только через создание первой пустой формы (которая и главная, но по ходу необязательно) и передачи хендла туда.... А что сделаешь. Зато в будущем можно использовать ее под сплеш)).
nowa
незнакомец
 
Сообщения: 2
Зарегистрирован: 13.07.2012 22:53:15


Вернуться в Lazarus

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

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

Рейтинг@Mail.ru
cron