*** 1 ***
Treeview 控件中 TTreeNode中如何加入节点的代码信息?案例:
现在我用树表示地区信息,地区存储有两部分内容:代码(001) 与名称(北京),北京在NODE中显示在TEXT属性中,那我的代码存放在NODE什么属性中呢?因初学DELPHI,代码能力不行,如方便请把代码贴上来,谢谢!*** 2 ***
在DELPHI中是不是可以知道一个类名就可以自动创建他?案例:我项目中实现了三个类:TCLS1,TCLS2,TCLS3,一般创建这个类都是通过定义变量再create,如
var
cls1 : TCLS1;
begin
cls1 := TCLS1.Create(self);
end ;但我现在要动态实现这三个类,我在外部存储(如数据库)了三个类的名字,我现在想根据这三个类的名字(字符串)可以动态加载他们,可以嘛?
Treeview 控件中 TTreeNode中如何加入节点的代码信息?案例:
现在我用树表示地区信息,地区存储有两部分内容:代码(001) 与名称(北京),北京在NODE中显示在TEXT属性中,那我的代码存放在NODE什么属性中呢?因初学DELPHI,代码能力不行,如方便请把代码贴上来,谢谢!*** 2 ***
在DELPHI中是不是可以知道一个类名就可以自动创建他?案例:我项目中实现了三个类:TCLS1,TCLS2,TCLS3,一般创建这个类都是通过定义变量再create,如
var
cls1 : TCLS1;
begin
cls1 := TCLS1.Create(self);
end ;但我现在要动态实现这三个类,我在外部存储(如数据库)了三个类的名字,我现在想根据这三个类的名字(字符串)可以动态加载他们,可以嘛?
var
Code :PInteger;
begin
Code^ := 001;
TreeView1.Items[0].Data := Code; //必须保证你的TreeView1有一个节点,否则会发生异常
ShowMessage(IntToStr(PInteger(TreeView1.Items[0].Data)));
end;
2.需要用到RTTI,比较麻烦,你自己考虑使用其他方式代替比较好
2.可以。用时要判断其是否已创建,否则会引起地址错误。
3.Treeview之Data用法你可以搜索相关资料,http://www.xmflyfish.com/awind/permis.rar中我有用到,你可以下载查看,http://www.xmflyfish.com/awind/apermis.exe是程序,你可以看其效果,在员工资料窗体。
var
SelNode,TipNode:TTreeNode;
NewsID:Integer;
begin
SelNode:=tvFile.Selected;
NewsID:=1; //北京编码
//添加节点
TipNode := tvFile.Items.AddChild(SelNode,'北京');
TipNode.ImageIndex := 1;
TipNode.SelectedIndex := 2;
TipNode.StateIndex:=NewsID; //就是它了,简单
TipNode.MakeVisible;
end;
type
PMyRecord = ^MyRecord;
MyRecord = record
ID : integer;
name:string;
end;//end of recordvar
p : PMyRecord;
begin
new(p);
p.ID := 代码;
p.name := 名称;
TreeView1.Items.AddChildObject(Node, p.name, p);
//dispose(p);//一定要去掉这条语句,不然的话,Treeview中的Data也被dispose掉了。
end;使用
PMyRecord(Treeview1.Selected.Data).ID
PMyRecord(Treeview1.Selected.Data).name
请大家关注,谢谢!