Thema: Delphi MDI Form / MDI Child

Einzelnen Beitrag anzeigen

Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: MDI Form / MDI Child

  Alt 20. Apr 2005, 16:44
So mache ich das, wenn ich die MDI-Anwendung beenden will:
Delphi-Quellcode:
var
  cnt : Integer;
begin
  // Folgende Routine ist erforderlich, da es sonst zu einer Zugriffsverletzung kommt, wenn noch
  // MDI-Child-Fenster geöffnet sind.
  if MDIChildCount > 0 then begin
    for cnt := MDIChildCount downto 1 do begin
      TForm(MDIChildren[cnt - 1]).Close;
      Application.ProcessMessages;
    end;
    while MDIChildCount > 0 do begin
      Application.ProcessMessages; // Hier ist der Knackpunkt: Windows bekommt sonst die Fenster-Handle
                                   // nicht frei.
    end;
  end;
end;
Im OnClose des MDIChilds sollte noch Action := caFree stehen.

Vielleicht hilft dir das weiter.
Peter
  Mit Zitat antworten Zitat