Beim Schließen eines Fensters, wird von der
VCL "versucht" (ohne Rückprüfung) dem vorher aktiven Fenster (vor dem Anzeigen/OnShow) den Fokus zurückzugeben.
Gibt es dieses Fenster nicht mehr, dann bekommt niemand den Fokus.
Bei nicht-modalen Fenstern geht es eventuell über die Screen.Forms-Liste. (bin mir grad nicht sicher)
Ich habe doch beschrieben was passiert. Es wird mit EnumThreadWindows gearbeitet.
Das enumeriert dann durch alle Fenster und das erste, das ein TForm ist, wird dann genommen. Aber es wird eben nicht geprüft, ob es sichtbar ist. Es wäre schön, wenn das "vorher aktive Fenster" oder eine andere bessere Logik verwendet würde...