Du hast zwei Mal die
VCL.
Die
VCL der
DLL setzt, beim Schließen einer Form den Fokus, auf eines seiner Fenster (davon gibt es aber Keines mehr und die Fenster der EXE kennt sie nicht).
Fazit: Der Fokus geht verloren, ala SetFocus(0), und weil die Anwendung keinen Fokus mehr hat, wird sie durch Windows in den Hintergrund verschoben.
UND ist der Fokus einmal weg, kann/darf eine Anwendung den Fokus nicht auf sich setzen (nur andere, genauer das aktive Programm, darf sowas machen)
Lösung: Das
Handle der Form1 beim Aufruf übergeben, oder vor Anzeige der Form2 via GetActiveWindow es sich holen, und dann vor dem Close/Hide/Free ein Windows.SetFocus auf diese Form.
Ein Therapeut entspricht 1024 Gigapeut.