Hallo Paule
Zitat von
Paul Schmidt:
Könnt ihr mir vllt. mal ein einfaches Beispiel geben, wie ich z.B. 2 nodes in solch einen VirtualStringTree einfüge.
also: der root-node soll "Root" heißen und sein child "child".
Klar kann ich das, aber "einfach" ist das nicht gerade mit diese Komponente, dafür sehr performant.
Delphi-Quellcode:
var
Form2: TForm2;
type
PTreeData = ^TTreeData;
TTreeData = record
Caption: String;
end;
implementation
{$R *.dfm}
// Funktion zum Hinzufügen eines Eintrags
function AddVSTStructure(AVST: TCustomVirtualStringTree; ANode: PVirtualNode;
ARecord: TTreeData): PVirtualNode;
var Data: PTreeData;
begin
Result := AVST.AddChild(ANode);
Data := AVST.GetNodeData(Result);
Avst.ValidateNode(Result, False);
Data^.Caption := ARecord.Caption;
end;
procedure TForm2.Button1Click(Sender: TObject);
var
TreeData : TTreeData;
begin
TreeData.Caption := 'Root';
// Größe festlegen
VirtualStringTree1.NodeDataSize := SizeOf(TTreeData);
// Knoten einfügen:
AddVSTStructure(VirtualStringTree1, nil, TreeData);
TreeData.Caption := 'child';
// Größe festlegen
VirtualStringTree1.NodeDataSize := SizeOf(TTreeData);
// Eintrag einfügen
AddVSTStructure(VirtualStringTree1, VirtualStringTree1.GetFirst, TreeData);
end;
// Erst hier wird der Text zugewiesen!
procedure TForm2.VirtualStringTree1GetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString);
var
Data: PTreeData;
begin
// Zugewiesened Node ermitteln ...
Data := VirtualStringTree1.GetNodeData(Node);
// ... und dessen Caption zuweisen
CellText := Data^.Caption;
end;
Zitat von
Paul Schmidt:
PS: und bitte nicht hauen, wenn ich dumme Fragen stelle. Muss ja erstmal klein anfangen.
Keine Sorge, das macht keiner. Nur über die Suche wärst du sicher auch fündig geworden, daher das nächste Mal davor suchen, dann nimmt dir's garantiert keiner übel.