调用过程出现问题,大家帮我看看

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
...全文
21 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cl250 2003-08-20
  • 打赏
  • 举报
回复
tmpnode: TTreeNode参数传递有问题,
但FillProjStru(TADODataSet(FileDataMD.qrytmp1),tvProgItem,RootNode);应没问题啊
我也不知道为什么参数传递不进去/
polugen 2003-08-20
  • 打赏
  • 举报
回复
可 能是找不到父亲节点了

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧