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 ???


Anmelden zum Antworten