Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#5

AW: Livebinding einer TListView an TStrings

  Alt 20. Mai 2015, 11:22
@Popov: Eventuell geht es um FMX?
Habe es übersehen.

Unabhängig dessen, hier eine kleine Demo wie man Listen virtuell an ListView bindet. Vielleicht klappt das auch in FMX.
Delphi-Quellcode:
var
  sl: TStringList;

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
  NewColumn: TListColumn;

  dt: TDateTime;
begin
  sl := TStringList.Create;

  //StringList mit sinnlosen Daten füllen
  for i := 0 to 999 do
    sl.Add(FormatDateTime('dd.MM.yyyy hh:nn:ss.zzz', Now));

  //Columns erstellen
  NewColumn := ListView1.Columns.Add;
  NewColumn.Width := 100;
  NewColumn.Caption := 'Datum';
  NewColumn := ListView1.Columns.Add;
  NewColumn.Width := 100;
  NewColumn.Caption := 'Uhrzeit';

  //Dies und das
  ListView1.ViewStyle := vsReport;
  ListView1.Align := alClient;

  //Virtuelle Zuordnungen
  ListView1.OwnerData := True; //<<<<wichtig
  ListView1.Items.Count := sl.Count; //<<<<wichtig
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  sl.Free;
end;

procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem);
var
  s, Datum, Uhrzeit: string;
begin
  s := sl[Item.Index];
  Datum := Copy(s, 1, Pos(' ', s) - 1);
  Uhrzeit := Copy(s, Pos(' ', s) + 1, MaxInt);

  Item.Caption := Datum;
  Item.SubItems.Add(Uhrzeit);
end;
  Mit Zitat antworten Zitat