Ahhoz, hogy az alkalmazást kezelni tudjuk magából a létrehozott ikonból az ikonhoz hozzá kell
rendelni egy menüt (vagy egyéb eseményeket).

1. Először helyezz a Formra egy előugró menüt (TPopupMenu) és határozd meg az egyes menüpontok
OnClick eseményéhez tartozó eljárásokat (pl. kilépés, a Form elrejtése ill. mutatása).

2. Ezt követően a WndProc eljárás felülírásával elérjük, hogy a SysTray-ben elhelyezkedő ikon 
"válaszoljon" az általunk meghatározott üzenetekre.

private
{ Private declarations }
procedure WndProc(var Msg: TMessage); override;

. . .

procedure TForm1.WndProc(var Msg: TMessage);
var p : TPoint;
begin
case Msg.Msg of WM_USER + 1 : //az üzenet azonosítója
case Msg.LParam of
WM_RBUTTONDOWN : //kattintás az egér jobb gombjával
begin
GetCursorPos(p); //a kurzor pozíciója a kattintáskor
PopupMenu1.Popup(p.x,p.y); //a menü kinyitása
end;
WM_LBUTTONDBLCLK : //bal dupla-kattintás
begin
Form1.Show;
end;
WM_LBUTTONDOWN : //kattintás az egér bal gombjával;
end;
end;
inherited; //a le nem kezelt üzenetek elintéztetése
end;

Egyéb hasznos dolgok

1. Ha azt akarjuk elérni, hogy a FőForm a program indulásánál teljesen rejtve maradjon, akkor a
Project fájlban (az Application.Run előtt) állítsuk be a következő alkalmazás-tulajdonságot:

Application.ShowMainForm:= False;

2. Abban az esetben, ha nem szeretnénk a FőForm (rendszergombokkal történő) bezárásakor kilépni a
programból, csupán a System Tray-be kívánjuk "ledobni", akkor a Form OnClose eseményét az alábbiak
szerint kell meghatároznunk:

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:= caNone;
Form1.Hide;
end;

A program bezárását ilyenkor a SysTray-ikon egy menüparancsával érdemes megoldani. Mégpedig a
következő módon:

procedure TForm1.meExitClick(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE, @TrayIcon);
Application.ProcessMessages;
Application.Terminate;
end;