À l'aide de tobjectlist


ce qui rend la vie plus facile avec TObjectList
Nouvelle pour Delphi 5 & 6 est la TObjectList. Comme son nom l'indique, il est capable de stocker une liste d'objets!
Récemment, j'ai été tenus de présenter un exemple d'application pour un emploi, j'ai été la poursuite. Une chose de cette application n'a été permis à l'utilisateur de déposer des 'boîtes de Commentaires' sur une image. Ces exigences de la TObjectList classe un candidat parfait!
de Considérer cette procédure modifiée:
procédure TMainForm.AddString
var
& nbsp & nbsp MyStringList: TStringList
begin
& nbsp & nbsp MyStringList := TStringList.Créer
& nbsp & nbsp essayer
& ! & ! & ! & nbsp MyStringList.Add('bla')
& ! & ! & ! & nbsp MyStringList.Add('blah2')
& nbsp & nbsp à l'exception de
& ! & ! & ! & nbsp FreeAndNil(MyStringList)
& nbsp & nbsp fin
fin
Cette procédure manifestement introduit une assez grave fuite de mémoire! À l'aide de la TObjectList peut nous sauver du mal de tête, en utilisant une norme TList en raison d'une magnifique propriété/paramètre appelé 'OwnsObjects'.
pensez à notre procédure modifiée:
nous allons commencer par créer la TObjectList lorsque le formulaire est créé.
procédure TMainForm.FormCreate(Sender: TObject)
begin
& nbsp & nbsp FList := TObjectList.Créer(True) // OwnsObjects est Vrai.
fin
procédure TMainForm.AddString
var
& nbsp & nbsp MyStringList: TStringList
begin
& nbsp & nbsp MyStringList := TStringList.Créer
& nbsp & nbsp essayer
& ! & ! & ! & nbsp MyStringList.Add('bla')
& ! & ! & ! & nbsp MyStringList.Add('blah2')
& ! & ! & ! & nbsp FList.Ajouter(MyStringList)
& nbsp & nbsp à l'exception de
& ! & ! & ! & nbsp FreeAndNil(MyStringList)
& nbsp & nbsp fin
fin

Maintenant, nous n'avons pas à vous soucier de la fuite de mémoire parce que quand la forme principale est détruite, nous avons le code suivant:
procédure TMainForm.FormDestroy(Sender: TObject)
begin
& nbsp & nbsp FList.Gratuit
fin
TObjectList vous permet d'ajouter un objet quelconque qui signifie qu'il est nécessaire d'être générique. Jetons un coup d'oeil à l' .Méthode Add de la TObjectList lui-même:
fonction de TObjectList.Ajouter(AObject: TObject): Integer
begin
& nbsp & nbsp Résultat := hérité Ajouter(AObject)
fin
Notez le paramètre est de type TObject et comme tout bon programmeur Delphi faut savoir TObject est la valeur absolue de point de départ pour toutes les classes de la VCL Delphi. Par haveing un paramètre de TObject vous pouvez passer n'importe quoi dans la liste!!
Il y a un inconvénient, toutefois. Référencer l'élément de la liste ne vous donne qu'un 'TObject'. Pour envoyer un élément à votre liste de certains de conversion de type est nécessaire. Peut-être que nous avons besoin de trouver la chaîne dans la liste avec le texte contenant: 'bla'. Évidemment TObject n'est pas une propriété du Texte de sorte que vous aurez besoin de faire quelques typecasting.
procédure FindText
var
& nbsp & nbsp i: Integer
begin
& nbsp & nbsp for i := 0 to FList.Count - 1 do
& nbsp & nbsp si TStringList(FList.Les éléments[i])[0] = 'bla'
& ! & ! & ! & nbsp si TStringList(FList.Les éléments[i]).Texte = 'bla'
& ! & ! & ! & ! & ! & nbsp ShowMessage(TStringList(FList.Les éléments[i]).Texte)
& nbsp & nbsp fin
fin
l'Ajout de plus d'un type de la classe à la même liste d'objets est aussi une possibilité! Vous pouvez appeler la TObjectLists méthode intitulée: FindInstanceOf.
Ici le merveilleux outil appelé 'la Classe de Référence' est très pratique. Passer de la référence à votre type de classe et FindInstanceOf sera de retour la valeur de l'indice de l'endroit où dans la liste l'élément est situé à:
& nbsp & nbsp FList.FindInstanceOf(TStringList, True, 0)
Cette conclut la FindObject leçon et j'espère que vous voyez, c'est la valeur et j'espère que cet article était d'avoir de l'aide!
Eric 'DelphiDev' Marron









A l'aide de tobjectlist


A l'aide de tobjectlist : Plusieurs milliers de conseils pour vous faciliter la vie.


ce qui rend la vie plus facile avec TObjectList
Nouvelle pour Delphi 5 & 6 est la TObjectList. Comme son nom l'indique, il est capable de stocker une liste d'objets!
Recemment, j'ai ete tenus de presenter un exemple d'application pour un emploi, j'ai ete la poursuite. Une chose de cette application n'a ete permis a l'utilisateur de deposer des 'boîtes de Commentaires' sur une image. Ces exigences de la TObjectList classe un candidat parfait!
de Considerer cette procedure modifiee:
procedure TMainForm.AddString
var
& nbsp & nbsp MyStringList: TStringList
begin
& nbsp & nbsp MyStringList := TStringList.Creer
& nbsp & nbsp essayer
& ! & ! & ! & nbsp MyStringList.Add('bla')
& ! & ! & ! & nbsp MyStringList.Add('blah2')
& nbsp & nbsp a l'exception de
& ! & ! & ! & nbsp FreeAndNil(MyStringList)
& nbsp & nbsp fin
fin
Cette procedure manifestement introduit une assez grave fuite de memoire! A l'aide de la TObjectList peut nous sauver du mal de tete, en utilisant une norme TList en raison d'une magnifique propriete/parametre appele 'OwnsObjects'.
pensez a notre procedure modifiee:
nous allons commencer par creer la TObjectList lorsque le formulaire est cree.
procedure TMainForm.FormCreate(Sender: TObject)
begin
& nbsp & nbsp FList := TObjectList.Creer(True) // OwnsObjects est Vrai.
fin
procedure TMainForm.AddString
var
& nbsp & nbsp MyStringList: TStringList
begin
& nbsp & nbsp MyStringList := TStringList.Creer
& nbsp & nbsp essayer
& ! & ! & ! & nbsp MyStringList.Add('bla')
& ! & ! & ! & nbsp MyStringList.Add('blah2')
& ! & ! & ! & nbsp FList.Ajouter(MyStringList)
& nbsp & nbsp a l'exception de
& ! & ! & ! & nbsp FreeAndNil(MyStringList)
& nbsp & nbsp fin
fin

Maintenant, nous n'avons pas a vous soucier de la fuite de memoire parce que quand la forme principale est detruite, nous avons le code suivant:
procedure TMainForm.FormDestroy(Sender: TObject)
begin
& nbsp & nbsp FList.Gratuit
fin
TObjectList vous permet d'ajouter un objet quelconque qui signifie qu'il est necessaire d'etre generique. Jetons un coup d'oeil a l' .Methode Add de la TObjectList lui-meme:
fonction de TObjectList.Ajouter(AObject: TObject): Integer
begin
& nbsp & nbsp Resultat := herite Ajouter(AObject)
fin
Notez le parametre est de type TObject et comme tout bon programmeur Delphi faut savoir TObject est la valeur absolue de point de depart pour toutes les classes de la VCL Delphi. Par haveing un parametre de TObject vous pouvez passer n'importe quoi dans la liste!!
Il y a un inconvenient, toutefois. Referencer l'element de la liste ne vous donne qu'un 'TObject'. Pour envoyer un element a votre liste de certains de conversion de type est necessaire. Peut-etre que nous avons besoin de trouver la chaîne dans la liste avec le texte contenant: 'bla'. Evidemment TObject n'est pas une propriete du Texte de sorte que vous aurez besoin de faire quelques typecasting.
procedure FindText
var
& nbsp & nbsp i: Integer
begin
& nbsp & nbsp for i := 0 to FList.Count - 1 do
& nbsp & nbsp si TStringList(FList.Les elements[i])[0] = 'bla'
& ! & ! & ! & nbsp si TStringList(FList.Les elements[i]).Texte = 'bla'
& ! & ! & ! & ! & ! & nbsp ShowMessage(TStringList(FList.Les elements[i]).Texte)
& nbsp & nbsp fin
fin
l'Ajout de plus d'un type de la classe a la meme liste d'objets est aussi une possibilite! Vous pouvez appeler la TObjectLists methode intitulee: FindInstanceOf.
Ici le merveilleux outil appele 'la Classe de Reference' est tres pratique. Passer de la reference a votre type de classe et FindInstanceOf sera de retour la valeur de l'indice de l'endroit ou dans la liste l'element est situe a:
& nbsp & nbsp FList.FindInstanceOf(TStringList, True, 0)
Cette conclut la FindObject leçon et j'espere que vous voyez, c'est la valeur et j'espere que cet article etait d'avoir de l'aide!
Eric 'DelphiDev' Marron


À l'aide de tobjectlist

À l'aide de tobjectlist : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation