delphi treeview用法(DELPHI中treeview和DBgird的结合使用)

2024-07-21 03:01:09 0

delphi treeview用法(DELPHI中treeview和DBgird的结合使用)

这篇文章给大家聊聊关于delphi treeview用法,以及DELPHI中treeview和DBgird的结合使用对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

DELPHI中treeview和DBgird的结合使用

treeview的点击事件里修改DBGrid绑定的DataSet的带搏Filter啊(我当你是用ADO),SQL就写select * from 水果表,Open前把Filter写成是flag=’’,Filtered赋true,然后在treeview的点击事件里(好像有记录点击的时间不要整个控件点击的时间)将DBGrid绑定的那个DataSet控件的Filter值改为’flag=’’’+所选的值(通过时间的参数应该可以的得到)+’’’’机物游子没装Delphi没办法试,不蠢蚂祥能写的很细,抱歉

delphi里TreeView1控件怎么用

如果选中节点氏氏想做点什么可以在OnChange事件里写代码,OnChange事件的Node参数就是当前刚刚选中的节点。还有,磨改Selected属性是当前选中的歼游散节点

delphi TreeView1怎么用

例一//刷新Tree 1procedure TMainForm.RefTree();varTags:string ;RootNode0,RootNode1,RootNode2,RootNode3,RootNode4,RootNode5:TtreeNode;i:integer;beginTreeView1.Items.Clear;RootNode0:=TreeView1.Items.Add(nil,’全部’);RootNode1:=TreeView1.Items.Add(nil,’资分类’);RootNode2:=TreeView1.Items.Add(nil,’部门’);RootNode3:=TreeView1.Items.Add(nil,’情况’);RootNode4:=TreeView1.Items.Add(nil,’位置’);RootNode5:=TreeView1.Items.Add(nil,’方式’);TreeView1.Items.ImageIndex:=11;TreeView1.Items.ImageIndex:=54;TreeView1.Items.ImageIndex:=54;TreeView1.Items.ImageIndex:=54;TreeView1.Items.ImageIndex:=54;TreeView1.Items.ImageIndex:=54;RootNode0.SelectedIndex:=RootNode0.ImageIndex;RootNode1.SelectedIndex:=RootNode1.ImageIndex;RootNode2.SelectedIndex:=RootNode2.ImageIndex;RootNode3.SelectedIndex:=RootNode3.ImageIndex;RootNode4.SelectedIndex:=RootNode4.ImageIndex;RootNode5.SelectedIndex:=RootNode5.ImageIndex;//分类with DataM.q1 dobeginSQL.Clear;SQL.Add(’Select Name1 from Navtree where tag=’’分类’’ ’);Open;while not eof dobeginTreeView1.Items.AddChild(RootNode1,FieldValues);next;end;end;(此处省略365个字.....呵呵)end; 例二procedure TForm1.showtree; //showtree自定义的varmynode:ttreenode;beginwith adoquery1 dobeginclose;sql.Clear;sql.Add(’select * from aa where value = ’’1’’’);open;if recordcount 《》 0 thenbegintreeview1.Items.Add(treeview1.TopItem,fieldbyname(’核核name’).AsString);end;end;with adoquery2 dobeginclose;sql.Clear;sql.Add(’select * from aa where len(name) = 4’);open;while not eof dobeginmynode:= treeview1.Items.AddChild(treeview1.TopItem,fieldbyname(’name’好纯).AsString);with adoquery3 dobeginclose;sql.Clear;sql.Add(’select * from aa where name like ’’友氏咐’+ ’%’+ mynode.Text+ ’’’ and len(name) = 6’);open;if recordcount 《》 0 thenbeginfirst;begintreeview1.Items.AddChild(mynode,fieldbyname(’name’).AsString);next;end;end;end;next;end;end;end例三一、指标树的建立 具体方法是:创建一个数据库,设计指标表t_pub_index,包含index_id、parent_id、index_name字段,其它字段根据实际业务而定,指标名称index_name将在树型控件的节点上显示,index_id字段保存节点的唯一标识号,parent_id表示当前节点的父节点号,标识号组成了一个“链表”,记录了树上节点的结构。设计一窗体Frm_sys_index,其上放置TreeView控件tv_zb、Query控件Query1及其它指标属性显示控件。一个树的节点又包含文本(Text)和数据(Data)。Text为String类,用来显示指标或指标目录名称。Data则为无定形指针(Untyped Pointer),可以指向一个与节点相联系的数据结构,该结构与数据库指标表相应域关联,如指标ID、上级节点ID。 Query控件的表达式为: select index_id, parent_id, index_name from t_pub_index start with index_id=0 connect by prior index_id=parent_id 其中start with 和connect by 是Oracle的SQL语句的保留字,使一条记录的parent_id列的值等于前一记录的index_id列的值,并以parent_id等于0的记录开始。 建树的基本思路是: procedure TFrm_sys_index.createtree; var curValue: indexPointer; //指向与节点相联系的数据结构的指针 curNode : TTreeNode; //当前节点 curid : integer; //当前节点标识号 begin curNode := nil; curid := -1; Query_index.Open; Query_index.first; while not Query_index.Eof do begin new(curValue); With curValue^ do 将数据库指标表t_pub_index各字段值赋curValue 所指数据结构 while(curid 《》 curValue.parent_id) do //当前节点的标识号不等于当前记录的父节点号 begin curNode := curNode.parent; curid:= indexPointer(curNode.data).index_id; end; curNode := tv_zb.Items.AddChildObject(curNode, curValue^.index_name,curValue); //在当前节点上添加子节点,显示节点指标名称,所带指针指向一个与指标数据相联系的数据结构 curid := indexPointer(curNode.data).index_id; Query_index.next; end; Query_index.close; end; 二、增加、删除、修改树节点 单纯在Treeview 上增加、删除、修改节点只需用它本身提供的Treeview.Items. AddChildObject、 Treeview.Selected.Delete、Treeview.Selected.EditText等方法即可,但要相应修改数据库中的数据,必须通过递归调用同一个函数(用于删除一个选项)来遍历所选节点下的所有子节点。下面以删除节点为例介绍具体实现流程: function TFrm_sys_index.delnode(node1:TTreenode):TTreenode; var childnode:TTreenode; begin childnode:=node1.GetLastChild; //按倒序获得子项,因为删除选项时,列表会发生变化 while childnode《》nil do childnode:=delnode(childnode); //如子项不为空,进行递归调用 index_id:=inttostr(indexpointer(node1.data).index_id);//获得该节点对应指标 在数据库删除相应指标; result:=node1.parent.GetPrevChild(node1); //定位到该节点的上一节点 node1.delete; //删除树节点 end; 三、拖动树节点 拖动树节点基本上是通过建立目标项的新子项、向它复制源项、删除原项来移动选项。与上述删除操作相似,也是通过递归调用同一个函数(用于移动一个选项),按倒序移动所选节点下的所有子节点。下面是递归过程的代码: procedure TFrm_sys_index.CopyNodeUnder(treeview:TTreeview; sourcenode,targetnode:ttreenode); var newnode:ttreenode; i:integer; begin newnode:=treeview.items.addchildfirst(targetnode,’’); //建立目标项 newnode.assign(sourcenode); //复制源项属性 for i:=sourcenode.count-1 downto 0 do //递归调用,按倒序移动其所有子项 CopyNodeUnder (treeview,sourcenode.item,newnode); treeview.items.delete(sourcenode); //删除源项 end; Treeview对拖动操作提供支持,我们将组件的DragKind属性设置为dkDrag,DragMode属性设置为dmAutomatic,并为OnDragOver与OnDragDrop事件编写了处理程序。OnDragOver事件处理程序对允许移动的条件进行判断,排除需要避免的特殊情况。代码如下: procedure TFrm_sys_index.tv_zbDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); var targetnode,sourcenode:TTreenode; begin targetnode:=tv_zb.getnodeat(x,y); if (Source=Sender) and (targetnode《》nil) then //保证移动在TreeView上,且目标节点不为空 begin Accept:=true; sourcenode:=tv_zb.selected; //以下代码防止用户将一个选项拖到其子项上(它会随着选项一起移动,导致死循环) while (targetnode.parent《》nil) and (targetnode 《》 sourcenode) do targetnode:=targetnode.parent; if (targetnode = sourcenode) then Accept:=false; end else Accept:=false; end; OnDragDrop事件处理程序启动前述移动过程CopyNodeUnder,修改数据库数据。此外,在大批量添加数据到Treeview中时最好使用TreeView.Items.BeginUpdate和 TreeView.Items.EndUpdate,这样能加快显示速度。大致流程如下: procedure TFrm_sys_index.tv_zbDragDrop(Sender, Source: TObject; X, Y: Integer); var targetnode,sourcenode:TTreenode; begin targetnode:=tv_zb.getnodeat(x,y); //获得源节点 sourcenode:=tv_zb.selected; //获得目标节点 修改数据库中当前节点的父节点号parent_id,使其等目标节点标识号; tv_zb.items.beginupdate; //禁用TreeView重绘操作 try copynodeunder(tv_zb,sourcenode,targetnode); //启动移动过程 tv_zb.selected:=targetnode; finally tv_zb.items.endupdate; //重新设置 end; end; 例四给你一段超级短的代码,caption字段就是你的value字段,因value是保留字,所以我改成这个了。procedure TForm1.Button1Click(Sender: TObject);varss: TStrings;beginAdoQuery1.SQL.Text := ’SELECT name,caption FROM test8 ORDER BY name’;AdoQuery1.Open;ss := TStringList.Create;while not AdoQuery1.Eof dobeginss.Add(StringOfChar(#9,(Length(Trim(AdoQuery1.FieldValues)) div 2)-1)+ AdoQuery1.FieldValues);AdoQuery1.Next;end;ShowMessage(ss.Text);ss.SaveToFile(’d:\test8.txt’);ss.Free;TreeView1.LoadFromFile(’d:\test8.txt’);end;

delphi高手前来赐教小弟吧!!万分感激关于TreeView控件的用法

建议 楼主 去看看 万一的delphi blog

treeview 我也不用的是很熟练 

看了万陪脊一写的例子 ,我参考着写了这个 两层遍历的demo

应该能 帮芦拍渗到贺森你

 

亲 不要忘了采纳最佳哟

delphi 树形控件的使用

建议你下载一个三方控件,用里面的TdxDBTreeList来直接操作树形表。如果是自己用TreeView来创建的话,要用循环分多步操作了。1、查出父结点数据2、循环写入父结点(可以将各结点序号放入高孝SelectedIndex来做临时存储)3、循环当前已写入的父结点,并根据SeletedIndex(父结点序号)来查出属于当前序号的子结点,有数据的话 再循环写入子结点4、按上述方式循环判断下级子结点就可以创建一个树形结构表了。 对宏念弯于添加,删除等操作,也可以根据SeletedIndex结合Level来操作。如果帮助到您,请记得采纳为满意答案蔽闷哈,谢谢!祝您生活愉快! vae.la

关于delphi treeview用法,DELPHI中treeview和DBgird的结合使用的介绍到此结束,希望对大家有所帮助。

delphi treeview用法(DELPHI中treeview和DBgird的结合使用)

本文编辑:admin

更多文章:


linklist(linklist是什么意思)

linklist(linklist是什么意思)

本文目录linklist是什么意思C语言linklist &l 和linklist l的区别C语言中的linklist是什么数据结果中linklist是什么意思,LinkList型变量是什么意思arraylist和linkedlist重大区

2024年6月27日 09:50

richtextbox和textbox区别(VBA中“RefEdit”、“TextBox”、“RichTextBox”有什么区别)

richtextbox和textbox区别(VBA中“RefEdit”、“TextBox”、“RichTextBox”有什么区别)

本文目录VBA中“RefEdit”、“TextBox”、“RichTextBox”有什么区别RichTextBox与TextBox的区别是什么VBA中“RefEdit”、“TextBox”、“RichTextBox”有什么区别RefEdit

2024年5月21日 02:50

数组长度表示(数组长度的概念是什么)

数组长度表示(数组长度的概念是什么)

本文目录数组长度的概念是什么java中的二维数组的长度怎么用代码表示行的长度数组的长度定义数组时,为什么必须指定长度数组a的长度是什么意思什么是数组的长度数组长度的概念是什么所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个

2024年7月19日 21:34

html访问本地串口(html和js能像c#那样进行串口通信吗)

html访问本地串口(html和js能像c#那样进行串口通信吗)

本文目录html和js能像c#那样进行串口通信吗如何通过手机访问本地编写的html页面如何在web页面上获取客户端的串口数据如何通过网页访问电脑的串口本地的html怎么直接通过路径就读取本地文件html跨域访问本地文件在哪html和js能像

2024年3月29日 06:15

少儿学python有用吗(孩子学编程的话,真的有作用吗)

少儿学python有用吗(孩子学编程的话,真的有作用吗)

本文目录孩子学编程的话,真的有作用吗少儿编程真的有用吗python小学生学习好吗大家知道这个少儿编程python真的适合孩子来学习吗学习方式是什么样的啊孩子学习编程有用吗青少儿编程中的python大家有听过吗实用吗python少儿编程考级有

2024年7月12日 08:42

java源码是什么意思(请问一下java代码是什么意思,有什么功能呢)

java源码是什么意思(请问一下java代码是什么意思,有什么功能呢)

本文目录请问一下java代码是什么意思,有什么功能呢java代码 什么意思java源代码的作用在安装jdk过程中源代码指的是什么帮我翻译下面java源代码什么意思 特别是那个感叹号的作用java源代码的意思进来看看JAVA中原码 反码 补码

2024年6月21日 08:18

jquery零基础教程(web前端零基础系统学习路线(上))

jquery零基础教程(web前端零基础系统学习路线(上))

这篇文章给大家聊聊关于jquery零基础教程,以及web前端零基础系统学习路线(上)对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录web前端零基础系统学习路线(上)web前端零基础该怎么去学习web前端零基础系统学习路线(上

2024年8月23日 03:55

variants是什么意思(across all variants of the information content tests是什么意思)

variants是什么意思(across all variants of the information content tests是什么意思)

大家好,关于variants是什么意思很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于across all variants of the information content tests是什么意思的知识点,相信应该可以解

2024年7月2日 06:50

dialogue汉语(26字母在单词中的发音)

dialogue汉语(26字母在单词中的发音)

这篇文章给大家聊聊关于dialogue汉语,以及26字母在单词中的发音对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录26字母在单词中的发音dialogue的g发不发音 音标上有g这个音,但我听网上的读法是不读g的,请问正确的

2024年8月27日 22:10

delphi treeview用法(DELPHI中treeview和DBgird的结合使用)

delphi treeview用法(DELPHI中treeview和DBgird的结合使用)

这篇文章给大家聊聊关于delphi treeview用法,以及DELPHI中treeview和DBgird的结合使用对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录DELPHI中treeview和DBgird的结合使用delp

2024年7月21日 03:01

electronic materials(求助Advanced Electronic Materials杂志的评价)

electronic materials(求助Advanced Electronic Materials杂志的评价)

本篇文章给大家谈谈electronic materials,以及求助Advanced Electronic Materials杂志的评价对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以

2024年7月19日 19:35

writeline方法属于类(C#中StreamWriter类的常用方法有哪些呢)

writeline方法属于类(C#中StreamWriter类的常用方法有哪些呢)

本文目录C#中StreamWriter类的常用方法有哪些呢c#writeline可以直接对变量进行操作吗例如string a ={“test“};writeline(a);为什么C#类的静态方法,普通实例不能调用C# WriteLine 方

2024年7月16日 04:09

diving中文(skydiving中文意思)

diving中文(skydiving中文意思)

本文目录skydiving中文意思奥运体育项目分类英语单词(中文)小学pep英语六年级上册U4单词有哪些黑体白体都要,最好附中文skydiving中文意思Skydiving是指从飞机或其他高处跳伞的一种运动或活动。这种活动通常会吸引那些寻求

2024年7月3日 07:57

delphi正版软件(Delphi现在还有多少人在使用,使用的原因是什么)

delphi正版软件(Delphi现在还有多少人在使用,使用的原因是什么)

本文目录Delphi现在还有多少人在使用,使用的原因是什么Delphi的大疑惑,delphi 7是收费软件吗广州什么地方有正版Delphi卖delphi7.0版权及法律问题请问,正版Delphi软件的购买渠道去哪买东莞有吗delphi 价格

2024年7月24日 16:04

mongodb云数据库(紫光云数据库MongoDB版有哪些功能优势啊)

mongodb云数据库(紫光云数据库MongoDB版有哪些功能优势啊)

这篇文章给大家聊聊关于mongodb云数据库,以及紫光云数据库MongoDB版有哪些功能优势啊对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录紫光云数据库MongoDB版有哪些功能优势啊如何通过公网访问MongoDB云数据库紫

2024年7月18日 00:50

borrowing构词法(为什么英语单词大多数来自外来语)

borrowing构词法(为什么英语单词大多数来自外来语)

大家好,今天小编来为大家解答以下的问题,关于borrowing构词法,为什么英语单词大多数来自外来语这个很多人还不知道,现在让我们一起来看看吧!本文目录为什么英语单词大多数来自外来语英语构词中的中缀托福口语委婉语的19种构词方法翻译中的借用

2024年8月5日 07:30

主流的几种orm框架优缺点(从程序员到架构师需要多久)

主流的几种orm框架优缺点(从程序员到架构师需要多久)

本文目录从程序员到架构师需要多久PHP四大主流框架的优缺点有哪些从程序员到架构师需要多久我是java程序员,从java程序员成为架构师我用了7年。关于程序员用多长时间才能进阶成为架构师,我认为这因人而异,取决于程序员自身的综合情况,包括:努

2023年9月22日 03:20

while翻译(高中英语 这里的 While什么意思)

while翻译(高中英语 这里的 While什么意思)

本文目录高中英语 这里的 While什么意思while翻译成然而引导什么从句While 有哪些翻译为什么我觉得while有但是的意思while引导什么从句然而英语连词while的译法yet,while 放在句首分别怎么翻译高中英语 这里的

2024年3月27日 01:25

cstring类型(CString数据类型有什么优点)

cstring类型(CString数据类型有什么优点)

本文目录CString数据类型有什么优点MFC中CString是由什么基础数据类型构成的MFC中如何吧CString类型转换为double或int型如何用jsoncpp将cstring类型中文写入json文件CString数据类型有什么优点

2024年7月15日 12:14

婴儿起名字大全?网络营业执照随机名字

婴儿起名字大全?网络营业执照随机名字

大家好,关于随机起名很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于婴儿起名字大全的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录婴儿起名字大全网络营业

2024年8月4日 15:15

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1155
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索