
17.03.2012, 00:47
|
 |
Активный
|
|
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
|
|
Код:
const
WM_NOTIFYTRAYICON = WM_USER + 1;
procedure Ic(n: Integer; xTitle: string);
var
tray: TNotifyIconData;
TrayIcon: TIcon;
begin
with tray do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Form1.Handle;
uID := 1;
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallBackMessage := WM_NOTIFYTRAYICON;
hIcon := TrayIcon.Handle;
lstrcpy(szTip, PChar(xTitle));
end;
case n of
1: Shell_NotifyIcon(NIM_ADD, @tray);
2: Shell_NotifyIcon(NIM_DELETE, @tray);
3: Shell_NotifyIcon(NIM_MODIFY, @tray);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Ic(1, 'Text 1'); //добавляем иконку
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Ic(3, 'New Text'); //модифицируем иконку
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Ic(2, ''); //удаляем иконку
end;
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
|