Einzelnen Beitrag anzeigen

OG Karotte
(Gast)

n/a Beiträge
 
#9

Re: Virtual Treeview: Column-Collection wirft

  Alt 13. Feb 2007, 21:28
@Gruber_Hans_12345:
Standard für Spalten ist 'Visible'...

@DGL-Luke:

Delphi-Quellcode:
procedure TLangTreeController.VSTInitNode(Sender: TBaseVirtualTree; ParentNode,
  Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
var
  NodeData,ParentData: PNodeData;
  StrucElems: TJvSimpleXMLElems;
begin
  FTree.ValidateNode(Node, false);

  NodeData := Sender.GetNodeData(Node);
Du verwendest hier einmal FTree und einmal Sender. Sind die beide identisch oder sprichst Du zwei verschiedene 'Paar Schuhe' an?

Das Ereignis 'OnInitNode' wird meines wissens IMMER aufgerufen wenn ein Knoten (egal ob Parent oder Child) initialisiert wird. Damit wird obiger Auszug auch hiervon
FTree.ValidateNode(FTree.AddChild(nil,Pointer((@OwnData)^)),false); aufgerufen (und damit evtl 'doppelt gemoppelt' ???).

Dann greifst Du hier:
Delphi-Quellcode:
[...]
    ParentData := Sender.GetNodeData(Node.Parent); // <- hat dieser Knoten überhaupt ein Parent???
    StrucElems := FXML.Root.Items.ItemNamed['structure'].Items;

    case ParentData.Level of
[...]
auf einen evtl. nicht vorhandenen Parent zu, was möglicherweise der Grund hierfür ist:

Zitat:
Übrigens: Ich habe zur zeit zwei rootnodes. wenn ich die erste bis in die dritte ebene ausklappe, bekomme ich bei jedem ausklappen die Av (also jedesmal, wenn ich auf das "+" klicke). Ich kann die dann auch nicht mehr einklappen. Dafür kann ich dann aber die zweite rootnode (und ihre childnodes) problemlos ein- und ausklappen.
Denn beim ersten Init ist ja noch kein Parent (sondern nur der nicht sichtbare 'Masterroot') da und beim zweitenmal ist dann tatsächlich ein Parent da, dem dann auch die Childnodes sauber hinzugefügt werden...
  Mit Zitat antworten Zitat