当前位置:编程学习 > Delphi >>

delphi 如何根据字段属性生成指定控件?

例如:字段类型为'datetime'程序在制定位置生成TDBDateTimeEditEh控件。因该要怎么做呢?
补充:

字段类型分别为:char,datetime,char,datetime

需要根据字段类型自动生成相应的4个控件

如字段类型为char则生成 edit控件。

如字段类型为datetime则生成TDBDateTimeEditEh控件。

初步生成控件命令:

var
DBDateTimeEditEh1: TDBDateTimeEditEh;
begin
DBDateTimeEditEh1:= TDBDateTimeEditEh.Create(SELF);
DBDateTimeEditEh1.Parent:=self;

end;

但是这样生成的控件名只能生成1个,如果生成第2个、第3个,怎么样自动改变控件的名字?而且要定制控件生成出来的位置。

答案:

如果想要动态生成的话,可以采用数组控件

DBDateTimeEditEh1: array of TDBDateTimeEditEh;

控件的名字是唯一标识,所以一定义好了,就无法更改了,要设定显示位置,可以用SetBounds属性

记得如果你想全局调用动态生成的控件,那就必须把它定义为全局变量~

下面是一个例子,BackGroundImg是我一个image控件

BackGroundImg:=TImage.Create(self);
BackGroundImg.Parent:=LoginForm;
BackGroundImg.SetBounds(10,10,312,216);//设置起始位置
BackGroundImg.Align:=alClient;
BackGroundImg.Stretch:=true;
BackGroundImg.Visible:=true;
BackGroundImg.Picture.LoadFromFile('background\LoginForm.jpg');

BackGroundImg.OnMouseMove:=imgclick;//定义事件

上一个:谁有delphi的优先级排列表
下一个:delphi对数据的添加删除修改查询

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,