Verwendung von tobjectlist


Macht das Leben leichter mit TObjectList
Neue Delphi 5 & 6 ist die TObjectList. Da dieser Name ist impliziert, dass es eine Liste von Objekten gespeichert werden!
Vor kurzem musste ich eine Beispielanwendung für einen Auftrag zu übermitteln, die ich verfolgte. Eine Sache, die diese Anwendung haben durfte den Benutzer 'Kommentar-Boxen' auf ein Bild zu löschen. Diese Anforderungen hat die TObjectList einen perfekten Kandidat Klasse!
Betrachten Sie diese geänderte Verfahren:
Prozedur TMainForm.AddString;
var
MyStringList: TStringList;
beginnen
MyStringList: = TStringList.Create;
versuchen Sie
MyStringList.Add('blah');
MyStringList.Add('blah2');
mit Ausnahme von
FreeAndNil(MyStringList);
Ende;
Ende;
Dieses Verfahren stellt natürlich einen ziemlich schwere Speicherverlust! Mithilfe der TObjectList können uns die Kopfschmerzen mit einer Norm TList wegen eine wunderbare Eigenschaft/Parameter namens 'OwnsObjects' sichern.
Beachten Sie unsere geänderte Verfahren:
Betrachten wir zunächst die TObjectList erstellen, wenn das Formular erstellt wird.
Prozedur TMainForm.FormCreate(Sender: TObject);
beginnen
FList: = TObjectList.Create(True); OwnsObjects ist True.
Ende;
Prozedur TMainForm.AddString;
var
MyStringList: TStringList;
beginnen
MyStringList: = TStringList.Create;
versuchen Sie
MyStringList.Add('blah');
MyStringList.Add('blah2');
FList.Add(MyStringList);
mit Ausnahme von
FreeAndNil(MyStringList);
Ende;
Ende;

Jetzt haben wir nicht über den Speicherverlust zu kümmern, denn wenn das Hauptformular zerstört wird, wir den folgenden Code haben:
Prozedur TMainForm.FormDestroy(Sender: TObject);
beginnen
FList.Free;
Ende;
TObjectList können Sie ein Objekt jeglicher Art hinzu, was bedeutet, dass es erforderlich ist, um generisch sein. Werfen wir einen Blick auf die. Add-Methode der TObjectList selbst:
Funktion TObjectList.Add(AObject: TObject): Integer;
beginnen
Ergebnis: = geerbte Add(AObject);
Ende;
Beachten Sie der Parametertyp ist TObject und wie jeder gute Delphi Programmierer sollte weiß TObject absolute Ausgangspunkt für jede Klasse in der Delphi VCL ist. Indem er einen Parameter von TObject nichts in die Liste übergeben werden kann!!
Es gibt jedoch ein Nachteil. Auf das Element in der Liste verweisen gibt Ihnen nur eine 'TObject'. Einige Typ-Umwandlung ist erforderlich, um ein Element in der Liste zu beheben. Vielleicht müssen wir die Zeichenfolge in der Liste mit Text zu finden: 'blabla'. Offensichtlich nicht TObject eine Eigenschaft des Textes, so dass wir einige Typumwandlung tun müssen.
FindText Verfahren;
var
i: Integer;
beginnen
für i: = 0 to FList.Count - 1
Wenn TStringList(FList.Items[i]) [0] = 'Blabla' then
Wenn TStringList(FList.Items[i]). Text = 'bla' then
ShowMessage(TStringList(FList.Items[i]). Text);
Ende;
Ende;
Hinzufügen von mehr, dann ist eine Art der gleichen ObjectList-Klasse auch eine Möglichkeit! Sie können die TObjectLists-Methode aufrufen mit dem Titel: FindInstanceOf.
Hier ist das wunderbare Tool namens 'Referenz' praktisch. Übergeben Sie den Verweis auf den Klassentyp und FindInstanceOf kehrt den Index-Wert in der Liste das Element befindet:
FList.FindInstanceOf (TStringList, 'wahr', 0);
Hiermit ist die FindObject-Lehre, und ich hoffe, Sie sehen es Wert und ich hoffe, dass dieser Artikel der Hilfe war!
Eric Brown in 'DelphiDev'









Verwendung von tobjectlist


Verwendung von tobjectlist : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


Macht das Leben leichter mit TObjectList
Neue Delphi 5 & 6 ist die TObjectList. Da dieser Name ist impliziert, dass es eine Liste von Objekten gespeichert werden!
Vor kurzem musste ich eine Beispielanwendung für einen Auftrag zu übermitteln, die ich verfolgte. Eine Sache, die diese Anwendung haben durfte den Benutzer 'Kommentar-Boxen' auf ein Bild zu löschen. Diese Anforderungen hat die TObjectList einen perfekten Kandidat Klasse!
Betrachten Sie diese geänderte Verfahren:
Prozedur TMainForm.AddString;
var
MyStringList: TStringList;
beginnen
MyStringList: = TStringList.Create;
versuchen Sie
MyStringList.Add('blah');
MyStringList.Add('blah2');
mit Ausnahme von
FreeAndNil(MyStringList);
Ende;
Ende;
Dieses Verfahren stellt natürlich einen ziemlich schwere Speicherverlust! Mithilfe der TObjectList können uns die Kopfschmerzen mit einer Norm TList wegen eine wunderbare Eigenschaft/Parameter namens 'OwnsObjects' sichern.
Beachten Sie unsere geänderte Verfahren:
Betrachten wir zunächst die TObjectList erstellen, wenn das Formular erstellt wird.
Prozedur TMainForm.FormCreate(Sender: TObject);
beginnen
FList: = TObjectList.Create(True); OwnsObjects ist True.
Ende;
Prozedur TMainForm.AddString;
var
MyStringList: TStringList;
beginnen
MyStringList: = TStringList.Create;
versuchen Sie
MyStringList.Add('blah');
MyStringList.Add('blah2');
FList.Add(MyStringList);
mit Ausnahme von
FreeAndNil(MyStringList);
Ende;
Ende;

Jetzt haben wir nicht über den Speicherverlust zu kümmern, denn wenn das Hauptformular zerstört wird, wir den folgenden Code haben:
Prozedur TMainForm.FormDestroy(Sender: TObject);
beginnen
FList.Free;
Ende;
TObjectList können Sie ein Objekt jeglicher Art hinzu, was bedeutet, dass es erforderlich ist, um generisch sein. Werfen wir einen Blick auf die. Add-Methode der TObjectList selbst:
Funktion TObjectList.Add(AObject: TObject): Integer;
beginnen
Ergebnis: = geerbte Add(AObject);
Ende;
Beachten Sie der Parametertyp ist TObject und wie jeder gute Delphi Programmierer sollte weiß TObject absolute Ausgangspunkt für jede Klasse in der Delphi VCL ist. Indem er einen Parameter von TObject nichts in die Liste übergeben werden kann!!
Es gibt jedoch ein Nachteil. Auf das Element in der Liste verweisen gibt Ihnen nur eine 'TObject'. Einige Typ-Umwandlung ist erforderlich, um ein Element in der Liste zu beheben. Vielleicht müssen wir die Zeichenfolge in der Liste mit Text zu finden: 'blabla'. Offensichtlich nicht TObject eine Eigenschaft des Textes, so dass wir einige Typumwandlung tun müssen.
FindText Verfahren;
var
i: Integer;
beginnen
für i: = 0 to FList.Count - 1
Wenn TStringList(FList.Items[i]) [0] = 'Blabla' then
Wenn TStringList(FList.Items[i]). Text = 'bla' then
ShowMessage(TStringList(FList.Items[i]). Text);
Ende;
Ende;
Hinzufügen von mehr, dann ist eine Art der gleichen ObjectList-Klasse auch eine Möglichkeit! Sie können die TObjectLists-Methode aufrufen mit dem Titel: FindInstanceOf.
Hier ist das wunderbare Tool namens 'Referenz' praktisch. Übergeben Sie den Verweis auf den Klassentyp und FindInstanceOf kehrt den Index-Wert in der Liste das Element befindet:
FList.FindInstanceOf (TStringList, 'wahr', 0);
Hiermit ist die FindObject-Lehre, und ich hoffe, Sie sehen es Wert und ich hoffe, dass dieser Artikel der Hilfe war!
Eric Brown in 'DelphiDev'


Verwendung von tobjectlist

Verwendung von tobjectlist : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Verwendung von tobjectlist
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung