关于TreeView
if AdoTree.Active and (AdoTree.RecordCount > 0) then
begin
AdoTree.First;
curNode := nil;
curid := -1;
fcTreeView.Items.Clear;
while not AdoTree.Eof do begin
New(curValue);
curValue^.deptid := AdoTree.fieldByName('DeptID').AsInteger;
curValue^.name := AdoTree.fieldByName('DeptName').AsString;
curValue^.pdeptid := AdoTree.fieldByName('ParentID').AsInteger;
/////////////////////////////////////////////////////////////////
IsFind := True;
if curValue^.deptid < -1 then Curid := -1;
while (curid <> curValue^.pdeptid) do
begin
if curid = -1 then begin
curid := curValue^.pdeptid;
end else begin
curNode := curnode.Parent;
curid := IndexPointer(curNode.Data)^.deptid;
end;
end;
////////////////////////////////////////////////////
if curValue^.deptid > -1 then begin
curNode := fcTreeview.Items.AddChildObject(curNode,curValue^.name,curValue);
end else begin
curNode := fcTreeView.Items.AddChildObject(nil,curValue^.name,curValue);
end;
/////////////////////////////////////////////////////
Curid := IndexPointer(curNode.Data)^.deptid;
// AdoTree.Next;
AdoTree.Next;
end;
end; }
当在{ while (curid <> curValue^.pdeptid) do
begin
if curid = -1 then begin
curid := curValue^.pdeptid;
end else begin
curNode := curnode.Parent;
curid := IndexPointer(curNode.Data)^.deptid;
end;
end;
}中读取到的AdoTree中的数据在 fcTreeView中找不到父结点时就会出错,怎么解决