topnodes i ttreeview

Tags:    delphi

hvordan kan jeg finde antallet af topnodes i et TTreeView?

Count tæller jo også childnodes



6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
hvordan kan jeg finde antallet af topnodes i et TTreeView?

Count tæller jo også childnodes


TreeView.items.count

Med venlig hilsen
Frede_Manden
http://www.frederik-skov.dk



nodesInTop:=0;
for I:=0 to TREE.items.count-1 do
begin
if TREE.items[I].level==0 then inc(nodesInTop)
end;
-----------------------------------------------------------------------------
Min side ->www.the-hive.dk/~donp/



som nævnt i spørgsmålet virker denne ikke, da den også tæller childs!



Er der ikke en nemmere måde at gøre det på?

Jeg skal bruge det til, når mit program lukker. Mit program kan åbne flere filer samtidig, og de placeres i et treeview. Childnodesne er filens indhold. Jeg sletter en node med GetFile(en_node_her).Destroy;

min funktion GetFile finder det objekt, der er tilknyttet noden.

For at siker mig at alle filer er gemt og spørge hvis de ikke er, lukker jeg alle filer når programmet lukker. Men for at undgå at skulle håndtere hvis der ikke er nogen åbne filer, åbnes en ny fil når den sidste lukkes. derved bliver der ved med at være nodes i treeviewet, og programmet vil køre i en uendelig løkke.

Hvordan kan jeg slippe uden om det?



procedure TForm1.TreeView1Click(Sender: TObject);
var
i : integer;
OnTop : integer;
begin
OnTop := 0;
for I := 0 to treeview1.items.count-1 do
begin
if treeview1.items[I].level = 0 then
begin
inc(OnTop);
end;
end;
showmessage(intToStr(OnTop));
end;



fandt selv ud af det ved at destroye min sidste node efter løkken

Fold kodeboks ind/udKode 




t