UNIT TRAY;
Interfaceuses Windows, Messages, Sysutils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Registry, Shellapi, Comctrls, Stdctrls, Buttons, Menus, ExtCtrls
const ICON_ID = 3; NIF_INFO = $ 10; NIM_SETVERSION = $ 00000004; NOTIFYICON_VERSION = 3; NIM_SETFOCUS = $ 00000003; NIIF_INFO = $ 00000001; NIIF_WARNING = $ 00000002; NIIF_ERROR = $ 00000003; NIN_BALLOONSHOW = WM_USER 2; NIN_BALLOONHIDE = WM_USER 3; NIN_BALLOONTIMEOUT = WM_USER 4 ; Nin_balloonuserclick = wm_user 5; nin_select = wm_user 0; ninf_key = $ 1; nin_keyselect = nin_select or ninf_key;
Procedure Insticon (WinHandle: Thandle; CBMESSAGE: Integer); Procedure Deleicon; Procedure ShowballoontIps (Tipinfo, Tiptitle: String);
IMPLEMentation
TYPE PNEWNOTICYICONDATA = ^ TNEWNOTIFYICONDATA; TDUMMYUNITNAME = Record Case Integer of 0: (Uvert: uint); 1: (Uversion: UINT);
TNEWNOTIFYICONDATA = Record Cbsize: DWORD; WND: HWND; UID: uint; uflags: uint; uCallbackMessage: uint; hICON: HICON; SZTIP: Array [0..127] of char; // version 5.0 is 128, previous 64 DWState: DWORD; // Version 5.0 DWStatemask: DWORD; // Version 5.0 Szinfo: array [0..255] of char; // version 5.0 DummyunionName: TDummyunionName; szinfotitle: array [0..63] of char; / / VERSION 5.0 DWINFOFLAGS: DWORD; // Version 5.0 End;
Var icondata: TNEWNOTIFYICONDATA;
procedure InstIcon (ToyIcon: TIcon; WinHandle: THandle; cbMessage: Integer); begin IconData.cbSize: = Sizeof (IconData); IconData.Wnd: = WinHandle; IconData.uID: = ICON_ID; IconData.uFlags: = NIF_MESSAGE or NIF_ICON or NIF_TIP; IconData.uCallbackMessage: = cbMessage; IconData.hIcon: = ToyIcon.Handle; IconData.szTip: = 'LavaTech - Enhance the life!'; // use is the modification Shell_NotifyIcon (NIM_ADD, @ IconData); end; procedure Deleicon (WinHandle: Thandle); begin icondata.cbsize: = sizeof (icondata); icondata.wnd: = WinHandle; iconData.UID: = icon_id; shell_notifyicon (nim_delete, @ icondata); end;
procedure ShowBalloonTips (TipInfo, TipTitle: string); begin IconData.cbSize: = sizeof (IconData); IconData.uFlags: = NIF_INFO; strPLCopy (IconData.szInfo, TipInfo, sizeof (IconData.szInfo) - 1); IconData.DUMMYUNIONNAME. Utimeout: = 3000; Strplcopy (icondata.szinfotitle, TiPtitle, SizeOf (icholda.szinfotitle) - 1); icondata.dwinfoflags: = niif_info; shell_notifyicon (nim_modify, @icondata); end;
End.
{// Introduction: iConnclick // Add constant, insticon (Application.icon, Handle, WM_ICONEVENT); WM_ICONEVENT = WM_USER 111; // Natively, Declinations; Message WM_ICONEVENT; MESSAGE WM_ICONEVENT ; // achieve some procedure TForm1.IconOnClick (var message: Tmessage); var p: Tpoint; begin if (message.LParam = WM_LBUTTONDBLCLK) then begin // Double left end; if (message.LParam = WM_RBUTTONDOWN) then begin GetCursorPos (p); PopupMenu1.Popup (PX, PY); end; end;
}