Statt VirtualStringtree würde auch ein einfaches TListView gehen.
Mit den Einstellungen
Delphi-Quellcode:
DoubleBuffered = True
OwnerData = True
ReadOnly = True
RowSelect = True
ViewStyle = vsReport
OnData = lv1Data
und
Delphi-Quellcode:
procedure TForm1.lv1Data(Sender: TObject; Item: TListItem);
begin
if Assigned(Item) then
begin
Item.Caption := Succ(Item.Index).ToString;
Item.SubItems.Add(FLines[Item.Index]);
end;
end;
geht es sehr schnell, da die Daten nicht in das Listview geladen werden müssen.
FLines muss eine TStringList sein, die per LoadFromFile die Daten enthält.
Das Beispiel verwendet zwei Spalten, Zeilennummer und Text. Es geht auch mit einer.
Delphi-Quellcode:
procedure TForm1.lv1Data(Sender: TObject; Item: TListItem);
begin
if Assigned(Item) then
Item.Caption := FLines[Item.Index];
end;