![]() |
AddObject
Die Eigenschaft Itens von TStrings bietet die Möglichkeit zusätzlich Informationen von Typ TObject zuspeichern. Dabei handelt es sich eigentlich nur um ein beliebiges Zeiger Object. Gespeichert wird auch nicht das "Objekt" selber, sondern nur eine Referenz auf den Zeiger. Das heißt wird der Speicher für das Objekt freigegeben, ist später kein Zugriff mehr darauf möglich. Hier nun die Demo:
Delphi-Quellcode:
[edit=Matze]
// Data record
type TPerson = record Name: string[255]; Vorname: string[255] end; // Pointer to data record PPerson = ^TPerson; procedure TForm1.btnAddClick(Sender: TObject); var Person: PPerson; begin // Alloc memory new(person); Person^.Name := edtName.Text; Person^.Vorname := edtVorname.Text; // Add item and object Listbox1.Items.AddObject(IntToStr(Listbox1.Items.Count + 1), TObject(Person)); // DO NOT dispose memory. Only a reference to a pointer object is storded with // the listbox item end; procedure TForm1.ListBox1Click(Sender: TObject); var Name, Vorname: string; begin if Listbox1.ItemIndex > -1 then begin // Caste TObject and access the fields of the record Name := PPerson(Listbox1.Items.Objects[Listbox1.ItemIndex])^.Name; Vorname := PPerson(Listbox1.Items.Objects[Listbox1.ItemIndex])^.Vorname; ShowMessage(name + ', ' + Vorname); end; end; procedure TForm1.FormDestroy(Sender: TObject); var Loop: Integer; begin // Dispose memory if Listbox1.Items.Count > 0 then for Loop := Listbox1.Items.Count - 1 downto 0 do Dispose(PPerson(Listbox1.Items.Objects[Loop])); end; Hier noch ein paar Anmerkungen zu Luckie's Code: Zitat:
Zitat:
Mfg, Matze [/edit] [edit=flomei]Nur nen paar Tags korrigiert... Mfg, flomei[/edit] [edit=Matze] Mfg, Matze[/edit] [edit=toms] Mfg, toms[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz