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.