调用过程出现问题,大家帮我看看
cl250 2003-08-20 12:02:25 for i:=0 to tvProgItem.Items.Count-1 do
begin
RootNode:=tvProgItem.Items[i];
if RootNode.Text ='所有项目'then
begin
FileDataMD.qrytmp1.Close; //增加所有项目 及结构
FileDataMD.qrytmp1.SQL.Text:='select ID,Name from UserVisProj where UserID='+inttostr(CurUser.ID) ;
FileDataMD.qrytmp1.Open;
//以上都正常
FillProjStru(TADODataSet(FileDataMD.qrytmp1),tvProgItem,RootNode);
//参数传递正常
end;
end;
procedure Tfrmmain.FillProjStru(DataSet: TADODataSet;tree:TTreeView; tmpnode: TTreeNode); //显示项目及项目结构
var
NodePtr: PProgNode;
RootNode:TTreeNode;
s:string;
begin
tree.Items.Clear;
with DataSet do
begin
while not Eof do
begin //添加一级节点
s:=tmpnode.Text;
RootNode := tree.Items.AddChild(tmpnode, DataSet.Fields.FieldByName('Name').AsString);//此句出现错误引发异常,程序不能继续运行
New(NodePtr);
NodePtr^.ID :=FieldByName('ID').AsInteger;
RootNode.Data := Pointer(NodePtr);
//添加节点的下级结构
FileDataMD.qrytmp2.Close;
FileDataMD.qrytmp2.SQL.Text:='select * from ProjStru';
FileDataMD.qrytmp2.Open;
expandproject(TADODataSet(FileDataMD.qrytmp2),tree,RootNode);
FileDataMD.qrytmp1.Next;
end;
end;
tree.FullExpand;
end;
tvProgItem为TTREEVIEW
RootNode为TTREENODE