在TYPE中定义 
PNodeRec = ^TNodeRec;
  TNodeRec = record
    depid:integer;
    depfid:integer;
    depname:string;
  end;procedure TForm1.loadChilds(pID:integer;pNode:TTreeNode);
var
  i,cpID:integer;
  aNode: TTreeNode;
begin
  //(1)加载子节点
  Query2.Close;
  Query2.SQL.Clear;
  Query2.SQL.Add('select * from deptab where depfid='+IntToStr(pID));
  Query2.Open;  Query2.First;
  while not Query2.Eof do
  begin
    cpID:=Query2.FieldByName('depid').AsInteger;
    aNode := TreeView_dep.Items.AddChild(pNode,Query2.FieldByName('depname').asstring);
    Query2.Next;
  end;  //(2)递归载入子节点的子节点
  for i:=0 to pNode.Count -1  do
    begin
       LoadChilds(PNodeRec(pNode.Item[i].data)^.depid,pNode.item[i]);
    end;end;程序一运行到递归算法时就报读内存地址错,请问为什么呢?我不大会用指针,请各位高手指教!并祝情人节快乐!!谢谢!