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

Вниз

Таскбар и трей.   Найти похожие ветки 

 
misterix   (2003-09-12 11:02) [0]

У меня простая задача. Надо сворачивать окно в трей, а при разворачивании вынимать иконку из трея и показывать приложение в таскбаре. Выполняю следующий код.

При сворачивании.

// Hide app in taskbar
ShowWindow(Application.Handle,SW_HIDE);
SetWindowLong (Application.Handle,GWL_EXSTYLE,NOT WS_EX_APPWINDOW);

/// Minimize on tray
with nid do begin
cbSize := SizeOf( TNotifyIconData );
Wnd := MainForm.Handle;
uID := 1;
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallbackMessage := WM_ICONCALLBACK;
hIcon := Application.Icon.Handle;
StrCopy(@szTip,PChar(STR_VENDOR));
end;
Shell_NotifyIcon(NIM_ADD, @nid );


При разворачивании.

ShowWindow(Application.Handle,SW_SHOW);
SetWindowLong (Application.Handle,GWL_EXSTYLE,WS_EX_APPWINDOW);

//Delete tray icon
with nid do
begin
cbSize := SizeOf( TNotifyIconData );
Wnd := MainForm.Handle;
uID := 1;
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallbackMessage := WM_ICONCALLBACK;
hIcon := Application.Icon.Handle;
StrCopy(@szTip,PChar(STR_VENDOR));
end;
Shell_NotifyIcon( NIM_DELETE, @nid );


Это все работает, но почему-то через раз. В трей приложение сворачивается всегда. И всегда прячет свою кнопку в таскбаре. Также приложение всегда разворачиваетсяЮ всегда удаляет иконку из трея. Но почему-то не всегда (без закономерности) отображает свою кнопку в таскбаре.

Может надо чего-то еще добавить?

PS nid - это TNotifyIconData


 
Woolen   (2003-09-12 14:58) [1]

Думаю, ты не проверял еще, иначе вопрос ставил бы по-другому, потому проверь, у тебя код этот исполняется в те моменты, когда значок не появляется или не исполняется.


 
andre ©   (2003-09-12 22:41) [2]

А попробуйте делать через флаг, т.е. когда икоонка в трее TrayEnabled := true, а когда нет - false; погоняйте прогу по шагам.



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

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

Наверх




Память: 0.47 MB
Время: 0.053 c
1-41415
Ломброзо
2003-10-29 17:06
2003.11.13
ListBox и LB_ITEMATPOS


11-41118
gori
2003-02-20 03:28
2003.11.13
Убрать автосоздание второго окна


1-41162
tria
2003-11-03 11:04
2003.11.13
Как сделать в ToolBar кнопки разной ширины?


6-41857
malamba
2003-09-11 10:00
2003.11.13
а как создать свою страницу в Delphi


3-41105
Witaliy
2003-10-26 20:03
2003.11.13
TIB компоненты в потоках