AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualTreeView: Node Expanded hinzufügen

Ein Thema von KingIR · begonnen am 13. Jan 2008 · letzter Beitrag vom 13. Jan 2008
 
Benutzerbild von KingIR
KingIR

Registriert seit: 19. Feb 2006
81 Beiträge
 
Delphi 2006 Professional
 
#1

VirtualTreeView: Node Expanded hinzufügen

  Alt 13. Jan 2008, 11:30
Hallihallo,

ich würde gerne einzelne Nodes meiner VTW schon direkt beim Hinzufügen Expanded haben.

Ich füge meine Nodes über AddChild bzw. InsertNode ein. Ich weiß, dass das nicht der bevorzugte Weg ist, aber da die Nodes alle erst nach und nach eintreffen und ich vorher keinerlei Informationen über Anzahl oder Art habe, ist das so für mich einfacher als im Hintergrund die komplette Struktur zu modellieren und dann "echt virtuell" an die VTW zu übergeben.

Jedenfalls sind einige Knoten mit einem Flag versehen, dass dazu führen soll, dass sie gleich ausgeklappt bzw. Expanded dargestellt werden.

Folgendes habe ich schon probiert, klappt jedoch leider nicht (Nodes bleiben alle eingeklappt):

Delphi-Quellcode:
// Meine OnInitNode-Prozedur:

procedure TTrillListMgr.TV_OnInitNode(Sender: TBaseVirtualTree; ParentNode,
  Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
var
  NodeData: PListNodeData;
begin
  // ... NodeData ermitteln und überprüfen ...

  if (NodeData sagt dass dieses Element Children haben wird) then
  begin
    Include(InitialStates, ivsHasChildren);
  end;

  if (NodeData sagt dass dieses Element Expanded sein soll) then
  begin
    Include(InitialStates, ivsExpanded);
  end;

  Sender.InvalidateNode(Node);
end;
Die Prozedur wird auch korrekt aufgerufen und die States werden korrekt gesetzt. OnInitChildren verwende ich nicht, da ich ja nicht weiß wieviele Childs die Node haben wird. Direkt nach dem Hinzufügen der Nodes mit AddChild TV.Expanded[NewNode] auf True zu setzen bringt auch nichts.

Mein Verdacht ist dass ich da mit der Reihenfolge der Events irgendwas noch nicht so ganz verstanden habe, daher HILFE!!

Oder ist das alles Mist was ich da versuche und ich sollte doch den "echt virtuellen" Weg über einen Datenbaum im Hintergrund gehen...? Da habe ich dann nur auch das Problem, dass sich die Anzahl der Childs ständig ändert und ich Probleme bekomme nur aus dem Node.Index, der mit dem OnInitChild-Event eintrifft, den richtigen "Datensatz" für die Node zu ermitteln, vor allem da der Index sich ja zB durch Löschen von Elementen ändert...

Vielen Dank für jegliche Hilfe schonmal
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz