AGB  ·  Datenschutz  ·  Impressum  







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

virtual treeview: node.parent ist niemals nil

Ein Thema von changlee · begonnen am 2. Jan 2010 · letzter Beitrag vom 2. Jan 2010
Antwort Antwort
changlee
(Gast)

n/a Beiträge
 
#1

virtual treeview: node.parent ist niemals nil

  Alt 2. Jan 2010, 10:10
Hallo,

ich habe ein sehr seltsames Problem:

Jeder Knoten in meinem VirtualStringTree hat einen Parent Knoten, also auch diejenigen, die ein Nodelevel 0 haben.

Hier ein Beispiel:
Neues Project --> VirtualStringTree und einen Button aufs Formular.
Im Onclick-Ereignis des Button folgenden Code eingefügt:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var node:PVirtualNode;
begin
  node := vst.AddChild(nil);
  Caption := 'Level: ' + inttostr(vst.GetNodeLevel(node));
  if assigned(node.Parent) then
    Caption := Caption + '; Parent assigned'
  else
    Caption := Caption + '; Parent NOT assigned';
end;
Die Caption des Formulars ist nach einem Klick auf den Button: 'Level: 0; Parent assigned'

Wie kann das sein? Ist meine VirtualTreeview Installation defekt? Sonst hat das eigentlich immer funktioniert.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: virtual treeview: node.parent ist niemals nil

  Alt 2. Jan 2010, 10:12
Hast du vielleicht eine neuere Installation auf deinem Rechner als früher? Es kann durchaus sein, dass sich da die interne Logik geändert hat. Das wäre meine erste Vermutung, wenn du sagst, dass es früher scheinbar funktioniert hat.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
changlee
(Gast)

n/a Beiträge
 
#3

Re: virtual treeview: node.parent ist niemals nil

  Alt 2. Jan 2010, 10:16
Ich habe nichts verändert (zumindest nicht bewusst).
Aber den Einträgen hier im Forum zufolge sollte parent NIL sein, wenn der Knoten sich auf oberster Ebene befindet.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4

Re: virtual treeview: node.parent ist niemals nil

  Alt 2. Jan 2010, 10:21
Ich würde jetzt vermuten, dass das Root-Element (siehe TBaseVirtualTree.FRoot) nun als Parent (statt "nil") eingetragen ist...
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#5

Re: virtual treeview: node.parent ist niemals nil

  Alt 2. Jan 2010, 10:30
@mirage228: du hast recht

Folgender Code schreibt the p-p-p-p-arent in die Titelleiste. Ich habe die neuste Version installiert.
Delphi-Quellcode:
var
  vn : PVirtualNode;
  pn : PVirtualNode;
begin
  VirtualStringTree1.RootNodeCount := 10;

  vn := VirtualStringTree1.GetFirst();
  pn := vn.Parent;

  if (not Assigned(pn)) then Caption := 'Nüx'
  else if (pn = VirtualStringTree1.RootNode) then Caption := 'the p-p-p-p-arent'
  else Caption := 'strange';
end;
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
changlee
(Gast)

n/a Beiträge
 
#6

Re: virtual treeview: node.parent ist niemals nil

  Alt 2. Jan 2010, 10:33
Ja Mirage228, du hast recht. Die Idee hatte ich auch gerade.
Es ist tatsächlich der (nicht sichtbare) RootNode.
Danke.
Also sollte man immer beim Hochlaufen in einem Tree immer per NodeLevel oder per parent<>Rootnode prüfen, ob man schon auf oberster Ebene angelangt ist.
Gruß,
Stefan.
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:21 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