![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
создаю иконку в трее своему приложению так
Код:
const WM_NOTIFYTRAYICON = WM_USER + 1; var tray: TNotifyIconData; TrayIcon: TIcon .... На событии создания главной формы: 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; szTip :='Текст'; end; Shell_NotifyIcon(NIM_ADD, Addr(tray)); как потом во время работы программы сменить szTip :='Текст'; ? а то повтором вышеперечисленного кода текст не меняется.остается тот который самый первый был |
|
#2
|
||||
|
||||
|
Код:
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; |
| Этот пользователь сказал Спасибо Karsh за это полезное сообщение: | ||
Snake22 (17.03.2012)
| ||
|
#3
|
||||
|
||||
|
Пример на API:
Код:
//---------------------------------------------------------
// MouseEvent
//---------------------------------------------------------
function CallTrackMouseEvent(const Wnd: HWND; const Flags: DWORD): Boolean;
var
Track : TTrackMouseEvent;
begin
Track.cbSize := SizeOf(Track);
Track.dwFlags := Flags;
Track.hwndTrack := Wnd;
Track.dwHoverTime := 0;
Result := TrackMouseEvent(Track);
end;
//---------------------------------------------------------
// TaskBar icon
//---------------------------------------------------------
function TaskBarAddIcon(hWindow: THandle; ID: Cardinal; ICON: hIcon;
CallbackMessage: Cardinal; Tip: PChar): Boolean;
var
NID: TNotifyIconData;
begin
FillChar(NID, SizeOf(TNotifyIconData), 0);
with NID do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := hWindow;
uID := ID;
uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
uCallbackMessage := CallbackMessage;
hIcon := Icon;
lstrcpyn(szTip, Tip, SizeOf(szTip));
end;
Result := Shell_NotifyIcon(NIM_ADD, @NID);
end;
//---------------------------------------------------------
function TaskBarModifyIcon(hWindow: THandle; ID: Cardinal; Flags: Cardinal;
ICON: hIcon; Tip: PChar): Boolean;
var
NID: TNotifyIconData;
begin
FillChar(NID, SizeOf(TNotifyIconData), 0);
with NID do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := hWindow;
uID := ID;
uFlags := Flags;
hIcon := Icon;
lstrcpyn(szTip, Tip, SizeOf(szTip));
end;
Result := Shell_NotifyIcon(NIM_MODIFY, @NID);
end;
//---------------------------------------------------------
function TaskBarDeleteIcon(hWindow: THandle; ID: Integer): Boolean;
var
NID: TNotifyIconData;
begin
FillChar(NID, SizeOf(TNotifyIconData), 0);
with NID do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := hWindow;
uID := ID;
end;
Result := Shell_NotifyIcon(NIM_DELETE, @NID);
end;Опоздал ![]() |