Egy System Tray alkalmazás elkészítése alapvetően három fő lépésre bontható le: a) A program ikonjának hozzáadása a SysTray-hez. b) Menü (ill. események) hozzárendelése az ikonhoz. c) A program FőFormjának elrejtése. (ha szükséges) A program ikonjának hozzáadása a System Tray-hez 1. A feladat megoldása a Shell_NotifyIcon(dwMessage, lpData) Windows API függvény használatával történik. A függvény első paramétere egy üzenet, amely meghatározza, hogy mit teszünk az ikonnal, a második pedig egy az ikon adatstruktúrájára vonatkozó mutató (pointer). Mivel ez az adatstruktúra a ShellAPI unitban van deklarálva (TNotifyIconData), ezért azt bele kell foglalni a uses klauzulába. 2. Ezután a Form deklarációjának private részében létre kell hozni egy TNotifyIconData típusú változót az alábbi módon: private { Private declarations } TrayIcon: TNotifyIconData; 3. Majd a Form On Create eseményében rendeljük hozzá a megfelelő értékeket ehhez a változóhoz és hívjuk meg a Shell_NotifyIcon API függvényt. procedure TForm1.FormCreate(Sender: TObject); begin with TrayIcon do begin cbSize := SizeOf(TrayIcon); Wnd := Handle; {A FőForm Handle-je } uId := 100; uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE; uCallBackMessage := WM_USER + 1;{A Formnak küldött üzenet azonosítója} hIcon := Application.Icon.Handle; {A megjelenítendő ikon Handle-je} szTip := 'Az ikonhoz tartozó tipp...'; {Az ikonhoz tartozó tipp} end; Shell_NotifyIcon(NIM_ADD, @TrayIcon); {A függvény meghívása} end; A megadott értékek a későbbiekben a NIM_MODIFY üzenettel változtathatók meg. Egyszerűen rendeljük hozzá az új értékeket a változóhoz és hívjuk meg a függvényt. Például így: StrPCopy(TrayIcon.szTip, Application.Title); Shell_NotifyIcon(NIM_MODIFY, @TrayIcon); FONTOS! Az alkalmazás bezárásakor ne feledjük el a NIM_DELETE üzenettel eltávolítani az ikont a System Tray-ből. Shell_NotifyIcon(NIM_DELETE, @TrayIcon);