Hi,
ich bin dabei eine Hintergrund-Klasse für meinen DFMeditor zu schreiben, nur leider habe ich bisschen Probleme mit der recursiven getNext-funktion...
Da der komplette Code bisschen viel ist, hab ich den mal hier
coder.cycnus.de/entry.php?id=963 geposted.
TCompInfo stellt eine Komponente dar, hat 2 Listen (sub-Komponenten und Eigenschaften) und so entsteht ein Baum. Diesen will ich zur Anzeige rekursiv durchlaufen, um diese Struktur in einem Treeview darzustellen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| var Comp:TCompInfo; Prop:TPropInfo; tn:TTreenode; i:integer; begin comp:=rootcomp; tn:=nil; while assigned(comp) do begin tn:=treeview1.items.Add(tn,comp.name+':'+comp.TypeName); for i:=0 to comp.Properties.Count-1 do begin prop:=comp.Properties.GetItem(i); Treeview1.Items.AddChild(tn,prop.Name+' = '+prop.Value); end; comp:=comp.GetNext; end; end; |
ich habe festgestellt das das "result:=FParent.GetNext;" falsch ist, da dort dann wieder mit item 0 angefangen wird (result:=FComponents.GetItem(0)) und somit eine Endlosschleife erzeugt wird. Wie könnte ich das lösen?
Gruß Frank