Freigeben eines Formulars


Aus Speicher- und Resourcentechnischen Gründen ist es oft nützlich, ein Formular nur kurz für den Gebrauch zu erstellen und nach dem Anzeigen wieder freizugeben:

  MyForm := TMyForm.Create(Application);
  MyForm.showModal;
  MyForm.Release;

Für das Freigeben gibt es bei Formularen zwei verschiedene Wege, nämlich die Methode Free und die Methode Release. Beide Methoden haben ihre Vor- und Nachteile:

Release wird von der Online-Hilfe empfohlen, da es vor dem Freigeben alle Windows-Nachrichten beantwortet und freigibt und erst dann das Formular. Allerdings wartet Release mit der Freigabe bis zur Beendigung der Anwendung, also keine wirkliche Speicherersparniss.

Free hingegen gibt das Formular sofort frei, kann allerdings zu Abstürzen führen, wenn sich noch Nachrichten in der Warteschlange befinden.

Eine entgültige Lösung weiß ich im Moment nicht, vielleicht hat ja jemand eine Idee...

Wichtig auch: Das Formular, das nur bei Bedarf erstellt wird muß natürlich über Projekt/Optionen aus der Liste der automatisch generirten Formulare entfernt werden.

Delphi 1 Delphi 2 Delphi 3 Delphi 4
nicht getestet Version nicht betroffen getestet

siehe auch:


Delphi FAQ