Dir fehlt ja auch noch eine Message Loop. So das klassiche "repeat until quit", bzw. ein:
Delphi-Quellcode:
while GetMessage(@msgMain,0,0,0) do begin
TranslateMessage(@msgMain);
DispatchMessage(@msgMain);
end;
Mit minimalem Messagehandling zumindest.
edit: oder, da Du Forms schon drin hast, das Dir bekannte Application....-Getöse.
Delphi-Quellcode:
Application.Initialize;
Application.OnMessage := << dein eigener handler
Application.OnException := << dein eigener handler
Application.ShowMainForm := FALSE;
Application.Run;
FExitEvent.WaitFor($FFFFFFFF); << wird von TMenuItem, der beenden soll, getriggert.
Application.OnMessage := nil;