Hallo, marabu,
vielen Dank für die konstruktiven Hilfestellungen. Mit dem Variant-Array funktioniert das ganz gut:
Delphi-Quellcode:
function TClientListForm.GetFieldValues (ds: TDataSet): TVariantDynArray;
var
i: integer;
begin
SetLength (Result, ds.Fields.Count);
for i := Low (Result) to High (Result) do
Result[i] := ds.Fields[i].Value;
end;
procedure TClientListForm.AddListNode (Fields: TFields);
var
a, b: Integer;
n: PVirtualNode;
d: PVariantDynArray;
begin
n := ClientList.AddChild (nil);
d := ClientList.GetNodeData (n);
d^ := GetFieldValues (Fields.DataSet);
end;
Auch die Darstellung im VST funktioniert damit:
Delphi-Quellcode:
procedure TClientListForm.ClientListGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString);
var
d: PVariantDynArray;
begin
d := Sender.GetNodeData (Node);
CellText := String (d^[Column]); // Testweise
end;
Werde da noch bisschen rumbasteln und erweitern. Vielen Dank nochmals!