Ich benutze in meiner
MDI-Anwendung folgenden Code, um zu checken, ob eine Formularinstanz eines MDIChilds bereits existiert.
Eine ggf. vorhandene Instanz soll weiterverwendet werden, ansonsten wird eine neue Instanz erzeugt.
Der Aufruf erfolgt im Menü des Hauptformulars frmMain (vom Typ fsMDIForm).
Delphi-Quellcode:
procedure TfrmMain.WochenplanungClick(Sender: TObject);
begin
//Formular öffnen, ggf. Speicher allozieren
if not Assigned (frmWochenplanung) then
frmWochenplanung:=TfrmWochenplanung.Create(self)
else
frmWochenplanung.Show;
//Fenster ggf. aus dem minimierten Zustand holen
frmWochenplanung.WindowState:=wsNormal;
end;
Im OnClose-Ereignis des MDIChilds nutze ich zur Speicherfreigabe einfach folgendes:
FreeAndNil(frmWochenplanung);
Das ganze klappt soweit ganz gut, aber hin und wieder (nach diversen Öffnen und Schließen-Vorgängen) gibt es
beim Schließen einen "Abstract Error", irgendwas scheint da mit der Speicherverwaltung nicht zu klappen (?). Jemand eine Idee ?
Zitat:
Eigentlich ist es egal, welche Farbe ein Ferrari hat - hauptsache, er ist rot!
(Gehört in "Exclusiv-Weekend" /
RTL)