delphi 根据数据库结构生成TreeView
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了delphi 根据数据库结构生成TreeView,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1561字,纯文字阅读大概需要3分钟。
内容图文
procedure TUIOperate.FillTree(treeview: TTreeView); var ? findq: TADOQuery; ? node: TTreeNode; ? ? //这个方法是根据记录的id字段值,查找TreeView上的父节点 ? function FindParentNode(id:Integer):TTreeNode; ? var ? ? i:Integer; ? begin ? ? Result := nil; ? ? for i := 0 to treeview.Items.Count - 1 do ? ? begin ? ? ? //比较Node的Data值和记录的id值 ? ? ? if Integer(treeview.Items[i].Data) = id then ? ? ? begin ? ? ? ? Result := treeview.Items[i]; ? ? ? ? Break; ? ? ? end; ? ? end; ? end; ? begin ? findq := TADOQuery.Create(nil); ? findq.Connection := controler.DataConnect.Connection; //这里的Connection指向你的数据连接 ? try ? ? treeview.Items.BeginUpdate; ? ? treeview.Items.Clear; ? ? //选出所有记录,并按parentid排序,这样可以保证先添加顶级节点,在下级记录添加时,总能找到父节点 ? ? findq.SQL.Text := 'SELECT * FROM [Catalog] order by parentid,id'; ? ? findq.Open; ? ? while not findq.Eof do ? ? begin ? ? ? //如果是最顶级,直接添加到Treeview ? ? ? if findq.FieldByName('parentid').AsInteger = -1 then ? ? ? ? //将id值,保存在Node的Data中,以便查找用 ? ? ? ? treeview.Items.AddObject(nil,findq.FieldByName('CatalogName').AsString,Pointer(findq.FieldByName('id').AsInteger)) ? ? ? else ? ? ? begin ? ? ? ? //查找上级节点 ? ? ? ? node := FindParentNode(findq.FieldByName('parentid').AsInteger); ? ? ? ? if node <> nil then ? ? ? ? ? treeview.Items.AddChildObject(node,findq.FieldByName('CatalogName').AsString,Pointer(findq.FieldByName('id').AsInteger)); ? ? ? end; ? ? ? findq.Next; ? ? end; ? finally ? ? findq.Free; ? ? treeview.Items.EndUpdate; ? end; end;内容总结
以上是互联网集市为您收集整理的delphi 根据数据库结构生成TreeView全部内容,希望文章能够帮你解决delphi 根据数据库结构生成TreeView所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。