Beispiel:
Delphi-Quellcode:
uses
Contnrs;
type
TTest = class //Beispielklasse um zwei Werte aufzunehmen
Num1: Integer;
Num2: Integer;
end;
var
ol: TObjectList;
i: Integer = 0;
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Interval := 10; //Edit: hinzugefügt
ol := TObjectList.Create; //Die Liste
with ListView1 do
begin
ViewStyle := vsReport; //2 Spalten hinzufügen, sonst sieht man nichts <<<<<<<<<<<<<<<
OwnerData := True; //Wichtig: damit wird ListView1 virtuell
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
ol.Free;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
Test: TTest;
begin
Test := TTest.Create; //Die Liste befüllen
Test.Num1 := i;
Test.Num2 := i + 1;
ol.Add(Test);
Inc(i);
ListView1.Items.Count := ol.Count; //Wichtig: ListView den aktuellen Count mitteilen
Caption := 'Count: ' + IntToStr(ol.Count);
//Listview1.Items.Item[Listview1.Items.Count-1].MakeVisible(False);
end;
procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem);
var
Test: TTest;
begin
Test := TTest(ol.Items[Item.Index]); //Ein Objekt aus der Liste "holen"
Item.Caption := IntToStr(Test.Num1); //Hier Caption und ein SubItem anzeigen
Item.SubItems.Add(IntToStr(Test.Num2));
end;
danke für Antworten. ich werde das gleich ausprobieren. was ich gepostet habe, war quelltext von heute morgen. wo ich das Problem hab.