Но вот нужно мне еще меню и по левой кнопке... Создал еще 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.