![]() |
Zwei VirtualTreeView mit gleicher Datenquelle
Hi,
ich wollte in einer Software zwei VirtualTreeView verwenden, die auf die gleichen Daten zugreifen. Ein TreeView soll wie beim Windows-Explorer eine Navigations-Baumstruktur anzeigen, der andere eine Tabelle. Nun Frage ich mich, wie ich die Daten zuordnen kann. Hat jemand so etwas schon mal gemacht? Mein erster Versuch wäre ungefähr so:
Delphi-Quellcode:
Finde ich aber nicht besonders schön. Kann ich nicht was mit VST.CopyTo machen?
procedure TForm1.createNodes(Sender: TObject);
var Node, NNode: PVirtualNode; i : integer; Data, DestData: PTreeData; begin VSTBaum.NodeDataSize := SizeOf(TTreeData); VST.NodeDataSize := SizeOf(TTreeData); for I := 0 to 49 do begin Node := VST.AddChild(nil); Data := VST.GetNodeData(Node); Data^.FCaption := 'Hallo '+IntToStr(I); Data^.FColumn1 := 'Weiterer Wert '+IntToStr(I); NNode := VSTBaum.AddChild(nil); DestData := VSTBaum.GetNodeData(NNode); CopyMemory(DestData, DAta, SizeOf(Data)); end; end; |
AW: Zwei VirtualTreeView mit gleicher Datenquelle
Zitat:
Delphi-Quellcode:
Da hier aber Strings im Data drin liegen, muß ich dringend vom CopyMemory abraten !!!
// entweder den Zeiger
CopyMemory(@DestData, @Data, SizeOf(Data)); // DestData := Data; // oder die Daten CopyMemory(DestData, Data, SizeOf(Data^)); // DestData^ := Data^; oder CopyMemory(Data, SizeOf(TTreeData)); Aber warum kopierst du überhaupt die Daten? Es gibt die eine Liste mit den Daten und die beiden Treeviews-Knoten bekommen jeweils nur einen Verweis (Index/Zeiger) auf die zugehörigen Daten. Nja, auch wenn es meist blöd ist, wenn die Daten in der GUI liegen ... in dem einen TreeView sind die Daten und der Andere bekommt nur Zeiger auf diese Daten. (um bei deinem Beispiel zu bleiben) |
AW: Zwei VirtualTreeView mit gleicher Datenquelle
Zitat:
|
AW: Zwei VirtualTreeView mit gleicher Datenquelle
Zitat:
Statt den Daten im TreeView kann man die Daten natürlich auch in irgend einer anderen Liste/Baum/Struktur speichern und danach mit den Bäumen verknüpfen. |
AW: Zwei VirtualTreeView mit gleicher Datenquelle
Da hinter Data ja nur ein Zeiger auf die Daten steckt, solte es reichen diesen zu Kopieren
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz