Die Schleife im Timer war schon unschön, aber nun auch noch Halt?
Der Timer war doch nur ein 1-Schuß-Starttimer, um OnCreate zu verlassen. Halt kann man tatsächlich mit Deiner Lösung vermeiden (werde ich auch so tun, weil ich noch ein IniFile-Objekt instanziieren und entladen muß).
Mit Deinem
Delphi-Quellcode:
while IsWindow(DemoWnd) and not IsWindowVisible(DemoWnd) do // war 'ne Endlosschleife, falls es das Fenster nicht mehr gibt, oder es nie sichtbar wird
Sleep(50);
setzt die Vorschau allerdings erst mit einer Verzögerung von etlichen Sekunden ein, auch dann, wenn man/ich das Sleep auf 0 herabsetzt/herabsetze. Das Fenster muß doch - eigentlich - auch immer sichtbar sein, denn mit /P wird doch nur gestartet, wenn man im Fenster "Eigenschaften von Anzeige" aktiv herummacht. Wenn man natürlich selber im Textfenster auf der Kommandozeile den BS-Schoner mit /P startet, also mit aller Gewalt einen Zustand erzeugt, der nicht vorgesehen ist, dann ist es wohl möglich.
Ergänzung: Es mußte wohl die Nachrichtenschleife geleert werden. Mit
while IsWindow(DemoWnd) and not IsWindowVisible(DemoWnd) do Application.ProcessMessages
startet die Vorschau augenblicklich.
Das Problem, aus einer Schleife (und bitte kein 1-ms-Timer) mit oder ohne Application.ProcessMessages ohne spürbaren Zeitverzug herauszukommen, hat sich für mich ohnehin seit gestern erledigt.