![]() |
|
|
Регистрация | << Правила форума >> | 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; Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
Этот пользователь сказал Спасибо 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; Опоздал ![]() Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |