Einzelnen Beitrag anzeigen

Prototypjack

Registriert seit: 2. Feb 2003
611 Beiträge
 
Delphi 2009 Professional
 
#1

Verständnisproblem bei onDestroy

  Alt 1. Jan 2007, 20:18
Moin!

Ich fange gleich an und gebe euch ein Beispiel für mein Problem:

Programm Unit(.dpr):
Delphi-Quellcode:
begin
  lfoo := TFoo.Create;
  lbar := TBar.Create;
  try
    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    Application.Run;
  finally
    lbar.Free;
    lfoo.Free;
  end;
end.
Wie ihr seht erzeuge ich zwei Klassen die Global gültig sind, mein Problem ist nur. Bei Application.Run; wird die Messageschleife ja normalerweise abgearbeitet und der Code bleibt stehen(in diesem Abschnitt), tut er auch, soweit so gut. Wenn ich meine Mainform schließe, läuft zuerst der Code in der DPR zu Ende und dann startet die OnDestroy Methode meiner Mainform. Warum ist das so? Das Problem, welches ich hiermit habe ist, dass ich im onDestroy Event der Form noch auf lfoo zugreifen muss, dieses aber nichtmehr vorhanden ist.

Momentan habe ich es, unschön wie ich finde, so gelöst, dass ich den Ressourcenschutzblock entfernt habe und einfach lbar und lfoo nach dem letzten Benutzen in OnDestroy freigebe. Das kann's doch nicht sein, oder?

Ich hoffe ihr könnt mir zu einer besseren Methode verhelfen.
Danke schonmal!
Gruß,
Max
Max
„If you have any great suggestions, feel free to mail me, and I'll probably feel free to ignore you.“ . Linus Torvalds
  Mit Zitat antworten Zitat