Delphi 动态生成TreeView

zhangzhen_927116 2011-07-14 03:40:39
为什么我换了一个数据库就不行了呢?开始是ACCESS,换了server 就不行了
代码如下

procedure TForm1.FillTreeView(TreeView: TTreeView);
procedure CreateSubTree(FNodeName: string; Node: TTreeNode = nil);
var
mLocalName: string;
TreeNode: TTreeNode;
Ads_Tmp: TADODataSet;
begin
ADS_Tmp := TADODataSet.Create(Self);
ADS_Tmp.Connection := ADOConnection1;
with ADS_Tmp do
try
Close;
CommandText := 'Select * from Menu Where ParentID =' + FNodeName;
Open;
First; //ID MenuID MenuName
while not Eof do
begin
mLocalName := FieldbyName('ID').Asstring;
TreeNode := TreeView.Items.AddChild(Node, FieldByName('MenuName').AsString);
CreateSubTree(mLocalName, TreeNode); // 此处循环递归
Next;
end;
finally
ADS_Tmp.Free;
end;
end;
begin
TreeView.Items.BeginUpdate;
TreeView.Items.Clear;
with TreeView.Items.Add(nil, '所有目录') do
begin
ImageIndex := 1;
SelectedIndex := 1;
end;
CreateSubTree('0', TreeView.Items[0]);
TreeView.Items.EndUpdate;
TreeView.Items[1].Selected := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
FillTreeView(TreeView1);
end;
...全文
280 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangzhen_927116 2011-07-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sgzhou12345 的回复:]
这个数据库没有关系的,一样是可行的
[/Quote]
那怎么会呢? 明明我代码都没动过啊!怎么会出问题呢 ?
pilicat 2011-07-14
  • 打赏
  • 举报
回复
帮顶。
山东蓝鸟贵薪 2011-07-14
  • 打赏
  • 举报
回复
这个数据库没有关系的,一样是可行的
zhangzhen_927116 2011-07-14
  • 打赏
  • 举报
回复
是不是ACCESS 跟server 的编写格式不一样的,
zhangzhen_927116 2011-07-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yqdragon 的回复:]
撒问题,是出错
还是没有数据(treeview)显示出来
ParentID是什么类型
[/Quote]
ADS_Tmp := TADODataSet.Create(Self);这里报错。
yqdragon 2011-07-14
  • 打赏
  • 举报
回复
撒问题,是出错
还是没有数据(treeview)显示出来
ParentID是什么类型
zhangzhen_927116 2011-07-14
  • 打赏
  • 举报
回复
Select ID,MenuID,MenuName from Menu 不好意思 忘记了。
无条件为你 2011-07-14
  • 打赏
  • 举报
回复
你应该把表里的字段也说清楚。

2,498

社区成员

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

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