Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Tray [D6, Win2k]


Alibaba ©   (2002-03-07 16:40:00) 

Всем привет!
Нарисовал прогу, которая при запуске делает Application.ShowMainForm:=False, потом ставит иконку в Tray (что-бы показать что прога жывая) и чего-то делает.
Все класно. Но есть одно "НО".
Когда я говорю Виндам - ShutDown - закриваются все програмы, которые сейчас открыты - кроме моей! И, соответственно, никакого SutDown-а не происходит. Надо сначала закрывать мою прогу а потом делать ShutDown.

Это происходит потому, что когда Винда делает ShutDown - она разсылает message WM_QUIT все окнам. Но у моей проги нет активного окна во время работы!!! Поэтому моей проге, получается, нечем отловить это сообщение.

Я попытался отловить это сообщение самостоятельно:

const
CM_OK = WM_USER+$1100;

type
TfrmMain = class(TForm)
...
public
procedure OK(var message: TMessage); message CM_OK;
end

procedure TfrmMain.OK(var message: TMessage);
var ms: MSG;
begin
GetMessage(ms,0,0,0);
if ms.message = WM_QUIT then frmMain.Close;
end;

не работает...
Подскажите, может кто знает, куда бежать?


Ketmar   (2002-03-07 20:15:00) [1]

смотри WM_QUERYENDSESSION и компанию.

Satanas Nobiscum!

7/Mar/XXXVII A.S.


Наверх

Титульная страница Поиск, карта сайта Написать письмо