Put an icon to the tray

Posted in Application

This example shows, how to draw application icon in the system tray. Icon in tray is not responding to any messages in this application. This icon is only picture, which appears, when application is running and hides, when application is closing. Don't forget to add ShellAPI in uses chapter.

uses
  ShellAPI;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
  MyIcon.cbSize:=SizeOf(MyIcon);
  with MyIcon do
  begin
    Wnd:=Form1.Handle;
    uID:=0;
    uFlags:=NIF_ICON+NIF_TIP;
    hIcon:=CopyIcon(Application.Icon.Handle);
  end;
  Shell_NotifyIcon(NIM_ADD, @MyIcon);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Shell_NotifyIcon(NIM_DELETE, @MyIcon);
end;