Mega Code Archive

 
Categories / Delphi / VCL
 

How to add records to TStrings (TTreeview TListview)

Title: How to add records to TStrings (TTreeview / TListview) type TMyRecord = record id: Integer; Name: string; {...} end; PMyRecord = ^TMyRecord; {...} { In this example I use a Listview component } procedure Form1.Form1Create(Sender: TObject) var i: Integer; pRec: PMyRecord; begin for i := 0 to 10 do begin new(pRec); pRec.id := i; pRec.Name := 'Entry' + IntToStr(i); {...} ListView1.AddItem('Entry' + IntToStr(i), Pointer(pRec)); end; end; { To retrieve the stored records just use this: } procedure Form1.ListView1Click(Sender: TObject); var i: Integer; xRec: TMyRec; begin for i := 0 to Listview1.Count - 1 do if ListView1.Selected[i] then begin xRec := PMyRecord(ListView1.Items.Objects[i])^; ShowMessage(Format('Record #%d Name: %s', [xRec.id, xRec.Name])); end; end; { finally do not forget to free assigned memory } procedure Form1.FormClose(Sender: TObject); var i: Integer; begin for i := 0 to ListView1.Count - 1 do if ListView1.Items.Objects[i] nil then Dispose(ListView1.Items.Objects[i]); end;