![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как программно ... [Win95/98, WinME, NT4, Win2k, WinXP]
Marko_polo © (2002-11-27 15:04:00)Как программно при нажатии кнопки свернуть окно в system tray???
bak (2002-11-28 13:01:00) [1]неплохо бы еще обработать
protected
procedure WMGetSysCommand(var Message :TMessage); message WM_SYSCOMMAND;
procedure TForm1.WMGetSysCommand(var Message : TMessage) ;
Begin
IF (Message.wParam = SC_MINIMIZE) Then Form1.Visible:=False
Else Inherited;
End;
askanio (2002-11-28 09:54:00) [2]
Процедура добавляющая значек в Sys Tray
procedure TForm1.CreateTrayIcon(n:Integer);
var nidata : TNotifyIconData;
begin
with nidata do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Self.Handle; //HWND вашего окна
uID := 1; // номер значка
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP; //обрабатываемые флаги
uCallBackMessage := WM_MYICONNOTIFY;
hIcon := Application.Icon.Handle; // тооткуда берётся значек
StrPCopy(szTip,Application.Title); // всплывающая строка
end;
Shell_NotifyIcon(NIM_ADD, @nidata); // добавление значка
end;
Только не забудь спрятать окно программы. Например так
Application.ShowMainForm := False;
ShowWindow(Application.Handle, SW_HIDE);
ShowWindow(Application.MainForm.Handle, SW_HIDE);
Процедура удаляющая значек из Sys Tray
procedure TForm1.DeleteTrayIcon(n:Integer);
var nidata : TNotifyIconData;
begin
with nidata do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Self.Handle;
uID := 1;
end;
Shell_NotifyIcon(NIM_DELETE, @nidata); // удаление значка
end;
SPeller (2002-11-28 01:43:00) [3]2 Song
Для изменения значка в трее используется класс TShellNotifyIcon модуля ShellApi
С каких пор TShellNotifyIcon стала классом?
Song (2002-11-27 17:20:00) [4]http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=delphi;action=display;num=1037272197
SPeller (2002-11-27 15:29:00) [5]Окна не могут сворачиваться в system tray