MDI ist etwas, daß wohl nicht mehr so gut gewartet wird und wo es gern mal Problemchen gibt.
http://www.delphipraxis.net/180093-d...sprobleme.html
Wenn du es schaffst die Z-Order auszulesen, dann kannst du im Hintergrund einen Timer laufen lassen, welcher für das aktive Fenster schaut wo es ist und es dann nach vorne schiebt, wenn es nicht mehr vorne liegt.
Habt ihr noch StayOnTop-Fenster im Programm? Wenn ja, dann mußt du da aufpassen. (wir haben die alle rausgeworfen/umgebaut, da es damit noch mehr Probleme gab)
Ansonsten ein globaler Hotkey im Programm, der das aktive Fenster nach vorne holt, bzw. im Application.OnActivate (TApplicationEvents), wenn die Anwendung den Fokus bekommt.
> Screen.ActiveCustomForm
Ach ja, aufpassen muß man mit einigen Windowsdialogen, wie z.B. der MessageBox, welche von der
VCL nicht grade sonderlich beachtet/erkannt werden.