![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
PopUpMenu и tray-приложение...
botaniQ © (2007-10-03 10:43:00)Доброго времени!
Вот незадача...Моё приложение тихонько прячется в трее и при нажатии на иконку в трее выскакивает мое PopUp меню - но при потере фокуса оно не исчезает и не исчезнет до тех пор пока в нем чего нибудь не выберут...Внимание...вопрос =)
Как бы избавиться от этого??
Наткнулся в и-нете на вот что:
Иногда, при потере фокуса, всплывающее меню в System Tray при потере фокуса не закрывается. Поэтому, при обработке сообщений для всплывающего меню необходимо поместить окно на передний план и послать ему сообщение WM_NULL.
procedure TForm1.WndProc(var Msg: TMessage);
var
p: TPoint;
begin
case Msg.Msg of
WM_USER + 1:
case Msg.lParam of
WM_RBUTTONDOWN:
begin
SetForegroundWindow(Handle);
GetCursorPos(p);
PopupMenu1.Popup(p.x, p.y);
PostMessage(Handle, WM_NULL, 0, 0);
end;
end;
end;
inherited;
end;
Но что то не помогает... =(
LENIN_INC (2007-10-10 13:18:00) [1]Удалено модератором
Dib@zol (2007-10-03 17:36:00) [2]> PopUpMenu и tray-приложение...
Ещё одну иконку в трей запуздыриваем? :)
Leonid Troyanovsky (2007-10-03 14:39:00) [3]
> botaniQ (03.10.07 12:21) [8]
> Достаточно было одной сточки...
Вот такая она ошибочная - 17 строка.
--
Regards, LVT.
botaniQ (2007-10-03 12:21:00) [4]И стоило ли мучится...
вот так вот это все вышло
WM_RBUTTONDOWN :
begin
GetCursorPos (MousePos);
SetForegroundWindow(MainForm.Handle);
MainForm.PopUpMenu.Popup (MousePos.X, MousePos.Y);
end;
Достаточно было одной сточки...
botaniQ (2007-10-03 11:42:00) [5]Хм...странно - я нажимаю на иконку - выпадает меню, но когда я нажимаю, допустим на рабочий стол - то меню все равно остаётся на месте и никак не исчезает... =(
Leonid Troyanovsky (2007-10-03 11:38:00) [6]
> botaniQ (03.10.07 11:18) [3]
> Этот код не я придумывал - вообще не понимаю способа его
> действия...Вот и прошу помощи =)
В показанном коде ошибок нет.
Ну, а PostMessage, дейс-но, лишний.
--
Regards, LVT.
botaniQ (2007-10-03 11:33:00) [7]Приложение с иконкой в системном трее...
Anatoly Podgoretsky (2007-10-03 11:29:00) [8]> botaniQ (03.10.2007 10:43:00) [0]
Что такое tray-приложение?
Это твой термин?
botaniQ (2007-10-03 11:18:00) [9]
> Leonid Troyanovsky © (03.10.07 11:11) [1]
Этот код не я придумывал - вообще не понимаю способа его действия...Вот и прошу помощи =)
clickmaker (2007-10-03 11:17:00) [10]
> и послать ему сообщение WM_NULL.
лишнее
Leonid Troyanovsky (2007-10-03 11:11:00) [11]
> botaniQ (03.10.07 10:43)
> - но при потере фокуса оно не исчезает
Ошибка в 17 строке.
> Но что то не помогает... =(
А как PostMessage может помочь, если выход из меню не произошел?
--
Regards, LVT.