Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.22;
Скачать: CL | DM;

Вниз

PopUpMenu и tray-приложение...   Найти похожие ветки 

 
botaniQ   (2007-10-03 10:43) [0]

Доброго времени!
Вот незадача...Моё приложение тихонько прячется в трее и при нажатии на иконку в трее выскакивает мое 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;

Но что то не помогает... =(


 
Leonid Troyanovsky ©   (2007-10-03 11:11) [1]


> botaniQ   (03.10.07 10:43)  

> - но при потере фокуса оно не исчезает

Ошибка в 17 строке.

> Но что то не помогает... =(

А как PostMessage может помочь, если выход из меню не произошел?

--
Regards, LVT.


 
clickmaker ©   (2007-10-03 11:17) [2]


> и послать ему сообщение WM_NULL.

лишнее


 
botaniQ   (2007-10-03 11:18) [3]


> Leonid Troyanovsky ©   (03.10.07 11:11) [1]


Этот код не я придумывал - вообще не понимаю способа его действия...Вот и прошу помощи =)


 
Anatoly Podgoretsky ©   (2007-10-03 11:29) [4]

> botaniQ  (03.10.2007 10:43:00)  [0]

Что такое tray-приложение?
Это твой термин?


 
botaniQ   (2007-10-03 11:33) [5]

Приложение с иконкой в системном трее...


 
Leonid Troyanovsky ©   (2007-10-03 11:38) [6]


> botaniQ   (03.10.07 11:18) [3]

> Этот код не я придумывал - вообще не понимаю способа его
> действия...Вот и прошу помощи =)

В показанном коде ошибок нет.
Ну, а PostMessage, дейс-но, лишний.

--
Regards, LVT.


 
botaniQ   (2007-10-03 11:42) [7]

Хм...странно - я нажимаю на иконку - выпадает меню, но когда я нажимаю, допустим на рабочий стол - то меню все равно остаётся на месте и никак не исчезает... =(


 
botaniQ   (2007-10-03 12:21) [8]

И стоило ли мучится...
вот так вот это все вышло

   WM_RBUTTONDOWN :
   begin
     GetCursorPos (MousePos);
     SetForegroundWindow(MainForm.Handle);
     MainForm.PopUpMenu.Popup (MousePos.X, MousePos.Y);
   end;

Достаточно было одной сточки...


 
Leonid Troyanovsky ©   (2007-10-03 14:39) [9]


> botaniQ   (03.10.07 12:21) [8]

> Достаточно было одной сточки...

Вот такая она ошибочная - 17 строка.

--
Regards, LVT.


 
Dib@zol ©   (2007-10-03 17:36) [10]

> PopUpMenu и tray-приложение...

Ещё одну иконку в трей запуздыриваем? :)


 
LENIN_INC   (2007-10-10 13:18) [11]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2008.06.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
2-1211704334
BlueDragon
2008-05-25 12:32
2008.06.22
USB контроллер


15-1210264310
DillerXX
2008-05-08 20:31
2008.06.22
Можно ли вставить в фотоаппарат


2-1211923288
Johnnnn
2008-05-28 01:21
2008.06.22
execscript как выполнить JS функцию с параметром function(this)


15-1210434755
Рваный Башмак
2008-05-10 19:52
2008.06.22
А Ораклоиды здесь есть?


8-1182364153
Жидкое стекло
2007-06-20 22:29
2008.06.22
Звук и буферы