MDI-Anwendung
-
Hallo Leute!
Ich habe eine MDI-Anwendung, bei der durch Klicken auf Schaltflächen im Hauptformular die entsprechenden MDI-Children aufgerufen werden. Dabei wird das zu diesem Zeitpunkt aktive MDI-Children geschlossen.
ActiveMDIChild->Close();
In der OnClose-Routine des MDIChildren habe ich hinterlegt:
Action = caFree;
Funktioniert auch alles wunderbar bis auf einen kleinen Schönheitsfehler:
Bevor das neue MDI-Children erzeugt wird ist das alte noch nicht geschlossen. Das hat zur Folge, dass es zu optischen Überlagerungen kommt, die nicht unbedingt gut aussehen.
Nun meine Frage: Gibt es die Möglichkeit, das alte Fenster erst komplett auszublenden, bevor das neue erzeugt wird ? Kann mann eventuell das neu zu erzeugende Fenster so lange warten lassen, bis das alte endgültig entfernt wurde ?
Vielen Dank für Eure Hilfe.
-
Vielleicht hinter das Close() gleich ein Application->Processmessages.
-
Danke. ProcessMessages funktioniert. Jetzt tritt aber ein anderer merkwürdiger Effekt auf:
Manchmal (nicht immer) wird das aktive MDI-Child nicht geschlossen, sondern
maximiert oder es passiert sogar gar nichts. Was kann das denn sein ???