Autor Beitrag
OliverN_26
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: So 16.01.11 10:37 
Hi

Ich weiss nicht ob es ein Fehler war mich an der VirtualStringTree komponente zu versuchen aber ich bin am verzweifeln.
Ich bin so weit dass ich Einträge und Untereinträge schreiben kann.
Nur wie gott verdammt ist es denn möglich denen nen einfach Namen zuzuweisen?
Und wie komme ich, wenn ich diesen Node anklicke, an den Text?
Ist das wirklich so dermassen kompliziert oder sollte ich mich noch mal hinlegen?

danke :(
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 16.01.11 11:25 
user profile iconOliverN_26 hat folgendes geschrieben Zum zitierten Posting springen:
Nur wie gott verdammt ist es denn möglich denen nen einfach Namen zuzuweisen?
Indem du im Ereignis OnGetText den Text-Parameter entsprechend setzt.

user profile iconOliverN_26 hat folgendes geschrieben Zum zitierten Posting springen:
Und wie komme ich, wenn ich diesen Node anklicke, an den Text?
Indem du auf deine Daten, die du zu dem Knoten hinterlegt hast, zugreifst. Dafür gibt es die Funktion GetNodeData.

// EDIT:
Das entsprechende Tutorial ist ja eines der ersten Google Ergebnisse, das kennst du also ja sicher schon. Ich verlinke es aber mal noch einmal:
www.delphi-treff.de/...s-daten-hinzufuegen/
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: So 16.01.11 11:46 
Hmm .. so nach und nach blice ich durch aber ich muss trotzdem sagen dass ich diese extrem komplex und kompliziert finde.
Für Anfänger nich gerade geeignet :-(
Also die Beschriftung habe ich hinbekommen und auf die Caption zuzugreifen weiss ich nun dank deines Tips auch .. fehlt mir noch
die 1000x beschriebene MultiLine Funktion die ich nicht hinbekomme.

An welcher Stelle wird denn VirtualStringTree1.MultiLine[Node] := true; gesetzt?
Und muss danach noch etwas erfolgen? Refresh oder sonstiges ... ?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 16.01.11 12:25 
Multiline habe ich dabei ausschließlich selbst gezeichnet (vor allem weil ich auch noch farbliche Markierungen und dynamische verlaufende Hintergründe mitgezeichnet habe). Da müsste ich auch selbst schauen, wie das sonst geht. :nixweiss:

Einen Zeilenumbruch hast du aber in den Text eingefügt?
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: So 16.01.11 12:33 
Ja.

Mittlerweile bin ich so weit:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm9.VirtualStringTree1InitNode(Sender: TBaseVirtualTree;
  ParentNode, Node: PVirtualNode;
  var InitialStates: TVirtualNodeInitStates);
begin
  VirtualStringTree1.MultiLine[Node]  := true;
  VirtualStringTree1.NodeHeight[Node] := Node.NodeHeight + 15;
end;


Die Darstellung ist nun zwar 2-zeilig allerdings für "alle" Nodes - also auch die Root-Nodes.
Ich möchte das aber nur für die ChildNodes ?!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 16.01.11 12:43 
Du setzt es ja auch für alle ohne zu schauen was das für ein Node ist. :lol:

Du kannst z.B. das Level des Nodes betrachten zur Unterscheidung.
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: So 16.01.11 12:52 
Ein Traum :-)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm9.VirtualStringTree1InitNode(Sender: TBaseVirtualTree;
  ParentNode, Node: PVirtualNode;
  var InitialStates: TVirtualNodeInitStates);
begin
  if VirtualStringTree1.GetNodeLevel(Node) > 0 then begin
    VirtualStringTree1.MultiLine[Node]  := true;
    VirtualStringTree1.NodeHeight[Node] := Node.NodeHeight + 15;
  end;
end;


danke