Ähnlich der PostMessage könntest Du weitere Nachrichten versenden. Beispiel (ungetestet, sollte aber so funktionieren)
Code:
const
WM_StartMyProcess = WM_USER + 1;
type
TForm1 = class(TForm)
private
procedure WMStartMyProcess(var Msg: TMessage); message WM_StartMyProcess;
...
end;
....
TForm1.WMStartMyProcess;
begin
... der Code aus Deinem OnShow Event Handler
...
PostMessage(
Handle, WM_Close, 0, 0);
end;
TForm1.OnShow(Sender: TObject);
begin
PostMessage(Handler, WM_StartMyProcess, 0, 0);
end;
Ich hoffe, dass das weiterhilft.