treenode data

场景:deplhi 怎么通过treeNodedata属性来查找treeview对应的treeNode

deplhi 如何通过treeNode的data属性来查找treeview对应的treeNode
现在想通过某个treeNode的data属性来得到该节点,网上找了好多方法都不能用,特来请教各位大大,希望各位给予解答。我的treeview的每个treeNode都有一个唯一的id,存放在每个treeNode的data中,请问如何通过这个id也就是每个treeNode中的data获得对应的treeNode?

------解决方案--------------------
http://blog.****.net/bdmh/article/details/5857236
参考里面的FindParentNode
------解决方案--------------------
Delphi(Pascal) code

function GetTreeNodeByID(ATree: TTreeView; AID: integer): TTreeNode;
var
  i: integer;
begin
  result := nil;
  for i := 0 to ATree.Items.Count-1 do
  begin
    if PInteger(ATree.Items.Item[i].data)^ = AID then
    begin
      result := ATree.Items.Item[i];
      Exit;
    end;
  end;

end;

------解决方案--------------------
循环TreeView.Items,把data转换对应的类型,再取出ID对比就行了;符合就退出循环并返此TTreeNode
------解决方案--------------------
var
id, i: Integer;
node: TTreeNode;
begin
id := 100;
node := nil;
for i := 0 to TreeView1.Items.Count - 1 do
if Integer(TreeView1.Items.Item[i].Data) = id then
begin
node := TreeView1.Items.Item[i];
Break;
end;

if node = nil then
ShowMessage('not found!')
end;