Einzelnen Beitrag anzeigen

Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#19

Re: Stringlisten in mehreren Prozeduren nutzen

  Alt 24. Aug 2007, 09:03
Nur mal nebenbei: Globale Objekte sollte man über ein Singleton absichern, sprich: eine Funktion zum Zugriff deklarieren. Im Initialzation-Abschnitt wird der Zeiger auf Nil gesetzt, im finalization das Objekt zerstört und in der Funktion erstelle, falls es noch nicht erstellt wurde, also z.B. so:
Delphi-Quellcode:
Unit Foo;

Interface

Function MyStringList: TStringList;

Implementation
Var
  oMyList: TStringList;

Function MyStringList: TStringList;
Begin
  If Not Saaigned(oMyList)
  Then oMyList:=TStringList.Create;
  Result:=oMyList;
End;

...

Initialization
oMyList:=Nil;

Finalization
FreeAndNil(oMyList);

End.
Dann ist auch gewährleistet, dass diese Liste auch erstellt wird bei Benutzung. So wird allerdings die vorzeitige Zerstörung nicht verhindert, da muss man dann noch aufpassen. Solange man nur über die Funktion zugreift und den Destruktor nicht ruft, passiert nix.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat