Delphi中如何动态生成指定的控件?

2024-11-06 16:54:03
推荐回答(2个)
回答1:

var
i:Integer;
Lab:array of TLabel;
begin
if length(Lab)> 0 then //判断是否已经创建,如果有就删除
begin
for i:=0 to Length(Lab)-1 do
begin
FreeAndNil(Lab[i]);
end;
end;

SetLength(Lab,ADOQuery1.FieldCount);
for i :=0 to ADOQuery1.FieldCount-1 do
begin
Lab[i]:=TLabel.Create(Self);
Lab[i].AutoSize:=True;
Lab[i].Parent:=Panel1;
Lab[i].Top:=Trunc((i div 8)*70); //每行8个,每个间隔70
Lab[i].Left:=Trunc((i mod 8)*70);
Lab[i].Caption:=ADOQuery1.Fields.Fields[i].FieldName;
Lab[i].Color:=clRed;
end;
我已经加了注释。

回答2:

修改表结构?还是修改表中的数据?

不知道DELPHI中有没有动态的数据窗口,如果没有。告诉你个苯方法,不过保证好用!

设置多个Grid控件对应多个表。

开始只显示一个GRID ,当选中某一个表时做个判断!让和该表对应的GIRD显示,其他的全部隐藏。

DELPHI中控件都有HIDEN属性吧:)或者是VISIABLE属性。就修改这个就可以咯!!