Einzelnen Beitrag anzeigen

Nuclear-Ping
(Gast)

n/a Beiträge
 
#5

Re: TField.Assign (TField) -> Fehler

  Alt 19. Dez 2005, 11:49
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!
  Mit Zitat antworten Zitat