var node: TTreeNode; label ok; begin node := TreeView1.TopItem; while True do begin if node.HasChildren then node := node.GetFirstChild else begin while node.IsLast do if node.Level = 0 then goto ok else node := node.Parent; node := node.GetNextSibling; end; end; ok:null; //结束 end;
或者你可以去Delphi自带的根目录下参考Doc的例子
function findparent:TTreenode; var t:TTreeNode; begin t:=TreeView1.Selected; while HasAsParent(T) do t:=t.Parent; result:=t; end;
node: TTreeNode;
label ok;
begin
node := TreeView1.TopItem;
while True do
begin
if node.HasChildren then
node := node.GetFirstChild
else
begin
while node.IsLast do
if node.Level = 0 then
goto ok
else
node := node.Parent;
node := node.GetNextSibling;
end;
end;
ok:null; //结束
end;
var t:TTreeNode;
begin
t:=TreeView1.Selected;
while HasAsParent(T) do t:=t.Parent;
result:=t;
end;