Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#6

AW: listview realtime daten anzeige

  Alt 29. Jun 2015, 13:42
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;

Geändert von Popov (29. Jun 2015 um 13:46 Uhr)
  Mit Zitat antworten Zitat