delphi treeview使用详解(delphi 请问怎么动态的在树中增加节点,用TreeView或者ListVie)
本文目录
- delphi 请问怎么动态的在树中增加节点,用TreeView或者ListVie
- Delphi TreeView 使用方法连接access数据库(高分)
- delphi关于treeview传值
- 关于的Delphi 的treeview控件的用法请教大家
- 在delphi7中,怎么根据treeview中不同节点的内容,调出不同的窗口,谢谢!
- 如何利用delphi中treeview的data属性
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);
更多文章:
华硕a53xi245sd-sl(华硕a53XI245SD详细参数)
2024年7月8日 03:09