Warum nicht einfach die Abfrage ins OnCreate der Form reintun und dort ShowMainForm einfügen? Das spart die ganze OnActivate-Geschichte.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
If FindCmdLineSwitch('tray') then
begin
Application.ShowMainForm := False;
TrayIcon.Visible := True;
end;
end;