delphi treeview使用详解(delphi 请问怎么动态的在树中增加节点,用TreeView或者ListVie)

2024-10-22 11:56:30 0

delphi treeview使用详解(delphi 请问怎么动态的在树中增加节点,用TreeView或者ListVie)

这篇文章给大家聊聊关于delphi treeview使用详解,以及delphi 请问怎么动态的在树中增加节点,用TreeView或者ListVie对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

delphi 请问怎么动态的在树中增加节点,用TreeView或者ListVie

varNewNode:TTreeNode;beginwithTreeview1.itemsdobeginNewNode:=Add(nil,’Root1’);//增加第一个根结点AddChild(NewNode,’Child01’);//在根结点下增加子结点AddChile(NewNode,......................//在该根结点下继续增加子结点NewNode:=Add(nil,’Root2’);//增加第二个根结点..........end;end;

Delphi TreeView 使用方法连接access数据库(高分)

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ADODB, ComCtrls;type TForm1 = class(TForm) TreeView1: TTreeView; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Label1: TLabel; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } procedure AddClass(AId:integer;FatherNode:TTreeNode);//添加分类过程 procedure AddDataToDB(CurrNode,FatherNode:TTreeNode);//添加实际数据到数据库 public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.AddClass(AId: integer;FatherNode:TTreeNode);var QryTmp:TADOQuery; myNode:TTreeNode; myLabel:TLabel;begin QryTmp:=TADOQuery.Create(self); QryTmp.ConnectionString:=’Provider=Microsoft.Jet.OLEDB.4.0;Data Source=’+extractfilepath(application.ExeName)+’test.mdb;Persist Security Info=False’; QryTmp.SQL.Add(’select * from tb1’); QryTmp.SQL.Add(’where FatherId=’+inttostr(AId)); QryTmp.Open; while not QryTmp.Eof do begin myNode:=Treeview1.Items.AddChild(FatherNode,QryTmp.fieldbyname(’CName’).AsString); //创建标签,caption存放各分支的AutoId表识 myLabel:=TLabel.Create(self); myLabel.Visible:=false; myLabel.Caption:=QryTmp.fieldbyname(’AutoId’).AsString; myNode.Data:=myLabel; AddClass(QryTmp.fieldbyname(’AutoId’).AsInteger,myNode); //递归调用过程 QryTmp.Next; end; QryTmp.Free;end;procedure TForm1.FormCreate(Sender: TObject);begin AddClass(0,nil);end;procedure TForm1.Button1Click(Sender: TObject);var strName:string; myNode:TTreeNode;begin strName:=inputbox(’新增’,’请输入分类名称: ’,’’); strName:=trim(strName); if strName=’’ then exit; myNode:=treeview1.Items.Add(treeview1.Selected,strName); if assigned(treeview1.Selected) then AddDataToDB(myNode,treeview1.Selected.Parent) else AddDataToDB(myNode,nil); myNode.selected:=true;end;procedure TForm1.Button2Click(Sender: TObject);var strName:string; myNode:TTreeNode;begin strName:=inputbox(’新增’,’请输入分类名称: ’,’’); strName:=trim(strName); if strName=’’ then exit; myNode:=treeview1.Items.AddChild(treeview1.Selected,strName); AddDataToDB(myNode,treeview1.Selected); myNode.selected:=true;end;procedure TForm1.AddDataToDB(CurrNode,FatherNode: TTreeNode);var myLabel:TLabel; QryTmp:TADOQuery; AId:integer;begin if not assigned(FatherNode) then AId:=0 else if not assigned(FatherNode.Data) then AId:=0 else AId:=strtoint(TLabel(FatherNode.Data).caption); QryTmp:=TADOQuery.Create(self); QryTmp.ConnectionString:=’Provider=Microsoft.Jet.OLEDB.4.0;Data Source=’+extractfilepath(application.ExeName)+’test.mdb;Persist Security Info=False’; QryTmp.SQL.Add(’select * from tb1’); QryTmp.SQL.Add(’where FatherId=’+inttostr(AId)); QryTmp.Open; QryTmp.Append; QryTmp:=CurrNode.Text; QryTmp.Post; //创建记录currNode的AutoId表识标 myLabel:=TLabel.Create(self); myLabel.Visible:=False; MyLabel.Caption:=QryTmp.fieldbyname(’AutoId’).AsString; CurrNode.Data:=myLabel; QryTmp.Free;end;procedure TForm1.Button3Click(Sender: TObject);var QryTmp:TADOQuery;begin if not assigned(treeview1.Selected) then exit; if application.MessageBox(’是否删除分类及下级分类?’,’提示’,mb_yesno+mb_iconquestion)=idno then exit; //删除下级别分类 QryTmp:=TADOQuery.Create(self); QryTmp.ConnectionString:=’Provider=Microsoft.Jet.OLEDB.4.0;Data Source=’+extractfilepath(application.ExeName)+’test.mdb;Persist Security Info=False’; QryTmp.SQL.Add(’delete * from tb1’); QryTmp.SQL.Add(’where FatherId=’+TLabel(Treeview1.Selected.data).Caption); QryTmp.ExecSQL; QryTmp.SQL.Clear; QryTmp.SQL.Add(’delete * from tb1’); QryTmp.SQL.Add(’where AutoId=’+TLabel(Treeview1.Selected.data).Caption); QryTmp.ExecSQL; Treeview1.Selected.Delete;end;procedure TForm1.Button4Click(Sender: TObject);var QryTmp:TADOQuery; strName:string;begin if not assigned(treeview1.Selected) then exit; strName:=inputbox(’更改’,’请输入新的名称: ’,’’); strName:=trim(strName); if strName=’’ then exit; //删除下级别分类 QryTmp:=TADOQuery.Create(self); QryTmp.ConnectionString:=’Provider=Microsoft.Jet.OLEDB.4.0;Data Source=’+extractfilepath(application.ExeName)+’test.mdb;Persist Security Info=False’; QryTmp.SQL.Add(’update tb1 set CName=’+’’’’+strName+’’’’); QryTmp.SQL.Add(’where AutoId=’+TLabel(Treeview1.Selected.data).Caption); QryTmp.ExecSQL; Treeview1.Selected.Text:=strName;end;end.程序已经发给你了。

delphi关于treeview传值

type myint = ^string; 定义一个字符串指针var pt : myint; procedure Tfrom1.RzTreeView1Change(Sender: TObject; Node: TTreeNode);var s1 : string;begin s1 := myint(RzTreeView1.Selected.Data)^;取选中的值end;

关于的Delphi 的treeview控件的用法请教大家

var Node1 : TTreeNode; Node2 : TTreeNode;begin Node1:=TreeView1.Items.Add(nil,’a’);//根节点a Node2:=TreeView1.Items.Add(nil,’b’);//根节点b TreeView1.Items.AddChild(Node1 ,’a1’);//根节点a下的节点 TreeView1.Items.AddChild(Node2 ,’b1’);//根节点b下的节点end;

在delphi7中,怎么根据treeview中不同节点的内容,调出不同的窗口,谢谢!

procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);begin //当节点改变时根据内容弹出不同的窗口 if Node.Text = ’aaaa’ then winTest.Show; //或winTest.ShowModal弹出模态窗口。end;

如何利用delphi中treeview的data属性

定义一个结构体,保存你想要的数据:pMaterialType = ^TMaterialType;TMaterialType = recordFType: string;end;添加时:varpType: pMaterialType;begin....new(pType);pType.FType:= ’XXXX’;with TreeView1.Items.Add dobeginText:= ’名称’;Data:= pType;end;...使用时:pMatrialType(TreeView1.Items.Item.Data).FType;记得在销毁是要释放内存:Dispose(TreeView1.Items.Item.Data);

关于delphi treeview使用详解和delphi 请问怎么动态的在树中增加节点,用TreeView或者ListVie的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

delphi treeview使用详解(delphi 请问怎么动态的在树中增加节点,用TreeView或者ListVie)

本文编辑:admin

更多文章:


华硕a53xi245sd-sl(华硕a53XI245SD详细参数)

华硕a53xi245sd-sl(华硕a53XI245SD详细参数)

华硕a53XI245SD详细参数华硕A53XI245SD是一款笔记本电脑的型号,以下是关于其详细参数的条理化解释:1. 处理器:该款电脑搭载了Intel酷睿i5 2450M处理器,这是一款双核心四线程的处理器,拥有较高的计算能力和处理速度。

2024年7月8日 03:09

西安笔记本(西安笔记本电脑租赁)

西安笔记本(西安笔记本电脑租赁)

西安笔记本电脑租赁关于“西安笔记本电脑租赁”的相关内容,以下是条理清晰的解释:一、定义西安笔记本电脑租赁是指在西安地区,用户通过租赁的方式获得笔记本电脑的使用权,而无需购买。二、基本流程1. 需求确认:用户根据自身需求,明确需要租赁的笔记本

2024年7月21日 08:33

国产平板电脑厂家(国产平板电脑厂家排名)

国产平板电脑厂家(国产平板电脑厂家排名)

国产平板电脑厂家排名关于“国产平板电脑厂家排名”的相关内容,以下是一个条理清晰的解释:1. 排名依据:国产平板电脑厂家的排名通常基于多个因素,包括但不限于产品的销量、市场份额、品牌影响力、技术实力、用户评价等。这些因素综合起来,可以反映一个

2024年7月15日 14:51

宏基4741g拆机(宏基4741g拆机图解)

宏基4741g拆机(宏基4741g拆机图解)

宏基4741g拆机图解关于“宏基4741g拆机图解”的相关内容,以下将为您进行条理清晰的解释:一、概述宏基4741g拆机图解是指关于宏基品牌的一款笔记本电脑(型号为4741g)的拆机过程详细图解。通过拆机图解,用户可以了解该款笔记本电脑的内

2024年7月12日 11:06

mb402(MB40202VX-000C-G99)

mb402(MB40202VX-000C-G99)

MB40202VX-000C-G99关于“MB40202VX-000C-G99”的相关内容,由于没有具体的上下文或背景信息,我无法给出确切的解释。不过,我可以尝试根据一般的常识和经验来推测其可能的含义或相关内容。“MB40202VX-000

2024年7月27日 03:55

联想ibm笔记本报价(联想ibm笔记本报价表)

联想ibm笔记本报价(联想ibm笔记本报价表)

联想ibm笔记本报价表关于“联想IBM笔记本报价表”的相关内容,以下是一些基本的解释和条理清晰的说明:一、概述联想IBM笔记本报价表是一份详细列出联想品牌IBM系列笔记本电脑价格及配置的表格。这份表格通常包含了不同型号、配置和价格的信息,方

2024年7月20日 17:50

戴尔i5笔记本报价(戴尔笔记本i5系列报价查询)

戴尔i5笔记本报价(戴尔笔记本i5系列报价查询)

戴尔笔记本i5系列报价查询关于“戴尔笔记本i5系列报价查询”的相关内容,以下将为您进行详细解释:一、戴尔笔记本i5系列概述戴尔笔记本的i5系列是指采用了Intel Core i5处理器的笔记本电脑系列。这一系列的笔记本以其高性能、高性价比等

2024年7月10日 09:36

惠普传真机(惠普传真机怎么发传真)

惠普传真机(惠普传真机怎么发传真)

惠普传真机怎么发传真以下为关于“惠普传真机如何发传真”的详细步骤及说明:一、准备材料1. 确保惠普传真机已经接通电源并启动。2. 确保您有要发送的文档,并且该文档已经准备好放入传真机的文档进纸器。3. 确保您知道要发送传真的目标号码。二、发

2024年7月22日 07:00

x220(x220原装内存)

x220(x220原装内存)

x220原装内存好的,我将以条理明确的方式解释“X220原装内存”的相关内容。一、X220简介X220是一款来自联想的商用笔记本电脑型号。由于其定位于商务用途,往往对硬件配置和性能有着较高要求。二、原装内存“X220原装内存”指的是与该笔记

2024年7月26日 21:56

thinkpad商务本(thinkpad商务本哪个好)

thinkpad商务本(thinkpad商务本哪个好)

thinkpad商务本哪个好“ThinkPad商务本哪个好”是很多寻求高质量、耐用且适合商务用途的笔记本电脑用户经常问到的问题。以下是对ThinkPad商务本的相关内容的详细解释:1. 产品质量: - ThinkPad作为联想旗下的高端

2024年7月15日 17:24

手写笔记本(手写笔记本的尺寸)

手写笔记本(手写笔记本的尺寸)

手写笔记本的尺寸关于“手写笔记本的尺寸”的相关内容,可以为你简要概括如下:一、常见尺寸手写笔记本的常见尺寸主要有A5、B5、A6等。这些尺寸指的是笔记本内页的尺寸大小。1. A5尺寸:这是一种较为常见的笔记本尺寸,它的宽度通常为148毫米,

2024年7月23日 01:51

联想k2450(联想k2450硬盘什么接口)

联想k2450(联想k2450硬盘什么接口)

联想k2450硬盘什么接口关于“联想K2450硬盘什么接口”的问题,以下是一些相关内容的解释:1. 联想K2450是一款笔记本电脑。2. 硬盘接口是指硬盘与主机之间的连接部分。具体到联想K2450,它的硬盘接口类型需要查看具体型号的配置情况

2024年7月8日 11:45

上海二手笔记本电脑(上海二手笔记本电脑市场在哪)

上海二手笔记本电脑(上海二手笔记本电脑市场在哪)

上海二手笔记本电脑市场在哪关于“上海二手笔记本电脑市场在哪里”的相关内容,条理明确的解释如下:1. 市场概述:上海作为国内的一线城市,二手电子产品市场相对活跃。其中,二手笔记本电脑市场是众多消费者关注的焦点之一。不过请注意,虽然市场上确实有

2024年7月20日 16:56

联想s720(联想S720)

联想s720(联想S720)

联想S720“联想S720”是一个具体的产品型号,可能与联想品牌的手机或平板有关。为了确保给出最准确的回答,我首先会假定这是一款手机。关于“联想S720”的相关内容,以下是一些可能的条目和解释:1. **基本概述**: * 联想S720是联

2024年7月8日 14:41

ibm驱动下载(ibm 驱动下载)

ibm驱动下载(ibm 驱动下载)

ibm 驱动下载关于“IBM驱动下载”的相关内容,以下是条理清晰的解释:1. 定义:IBM驱动下载是指为IBM品牌的电脑或相关设备下载并安装驱动程序的过程。驱动程序是硬件与操作系统之间的接口,它能够让操作系统更好地识别和利用硬件设备。2.

2024年7月28日 23:41

联想昭阳k29(联想昭阳k29 msata)

联想昭阳k29(联想昭阳k29 msata)

联想昭阳k29 msata联想昭阳K29 MSATA是一款笔记本电脑的型号,其中涉及到的“MSATA”是一个接口类型,以下是关于“联想昭阳K29 MSATA”的相关内容解释:1. 接口类型:MSATA是一种小型的存储接口类型,用于连接固态硬

2024年7月23日 10:02

电脑维修入门(电脑维修入门基础知识)

电脑维修入门(电脑维修入门基础知识)

电脑维修入门基础知识电脑维修入门基础知识主要包括硬件和软件两大方面。以下是一些基础的入门知识:一、硬件方面:1. 基础知识:了解电脑的基本硬件组成,包括CPU、内存、硬盘、显卡等主要部件的功能和作用。2. 硬件连接:熟悉电脑各部件的连接方式

2024年7月22日 18:28

电脑基础知识学习(电脑基础知识培训班)

电脑基础知识学习(电脑基础知识培训班)

电脑基础知识培训班“电脑基础知识培训班”是一种专门为初学者或需要提高电脑操作技能的人设计的培训课程。以下是对其相关内容的条理化解释:一、培训目标电脑基础知识培训班的主要目标是帮助学员掌握基本的电脑操作技能和知识,包括Windows操作系统、

2024年7月24日 06:16

笔记本电脑品牌标志(笔记本电脑品牌标志logo大全)

笔记本电脑品牌标志(笔记本电脑品牌标志logo大全)

笔记本电脑品牌标志logo大全“笔记本电脑品牌标志logo大全”是一个关于各种笔记本电脑品牌标志性logo的集合。下面,我将为您条理清晰地解释一下相关内容。一、什么是笔记本电脑品牌标志logo?笔记本电脑品牌标志logo是各品牌为了辨识度而

2024年7月16日 15:16

奶牛笔记本电脑(奶牛笔记本电脑广告)

奶牛笔记本电脑(奶牛笔记本电脑广告)

奶牛笔记本电脑广告“奶牛笔记本电脑广告”指的是某品牌的笔记本电脑所制作的广告内容,具体分析如下:首先,奶牛本身是一种家畜,在多数语境中并不直接与电脑广告有关。因此,奶牛作为广告的主要元素或者背景可能吸引观众的注意力,引发好奇和探究。这种特殊

2024年7月20日 17:10

近期文章

本站热文

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

热门搜索