Главная страница
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.021 c
11-41132
Юрий
2003-02-13 18:52
2003.11.13
Свойства TKolPanel


6-41863
Maxim Volobuev
2003-09-06 18:38
2003.11.13
WebBrowser и Socks прокси


1-41259
GIL
2003-10-31 16:45
2003.11.13
пишет ошибку присвоения


4-42297
Sirakuz
2003-09-09 17:27
2003.11.13
Перевести SYSTEMTIME в FILETIME


3-41002
OlkaGTS
2003-10-16 12:13
2003.11.13
Один DataSetProvicer - много ClientDataSet