Einzelnen Beitrag anzeigen

Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Treeview bestimmten Node finden

  Alt 26. Nov 2009, 08:37
Wieso überprüfst du denn mit deiner Funktion ob der Knoten doppelt ist?

Lass dir doch lieber den Knoten zurückgeben und überprüfe dann ob der Knoten halt Assigned ist,
also so in etwa:

Delphi-Quellcode:

...

var s:tstringlist;j:TTreeNode;n:integer;
begin
  ADOQuery1.open;
  ADOQuery1.first;
  while not (ADOQuery1.eof) do
     begin
       s:=tstringlist.create;
       separate(s,ADOQuery1.FindField('Steuerfeld').asstring,'>');

       j:=SearchNodebyString(TreeView1.items,s.Strings[0]);

       TreeView1.Items.BeginUpdate;
       if not Assigned (j) then
       begin
         j:=TreeView1.Items.AddChild(nil,s.Strings[0])
       end
       else
       begin
         // Knoten schon vorhanden
       end;
       TreeView1.Items.EndUpdate;
       for N:=1 to s.Count-1 do
           Begin
              j:=SearchNodebyString(TreeView1.items,s.Strings[n]);
              if not Assigned (j) then
              begin
                j:=TreeView1.Items.AddChild(j,s.Strings[n])
              end
              else
              begin
                // Knoten schon vorhanden
              end;
           end;
       s.Clear;
       ADOQuery1.next;
     end;
  s.free;

...
Edith sagt:

Noch hier vll. als kleine Hilfe bzw Lösung http://delphi.about.com/od/vclusing/l/aa010703a.htm


MfG Alaitoc
  Mit Zitat antworten Zitat