动态创建label和text(100分)

  • 主题发起人 主题发起人 xq
  • 开始时间 开始时间
X

xq

Unregistered / Unconfirmed
GUEST, unregistred user!
我要在窗体上动态地创建label和text,个数与数据库中内容有关
(请不要suggest我用报表或数据类、grid类),请各位大虾赐教!
 
var
L:TLabel;
begin
L:=TLabel.Create(Form1);
L.Caption:=';sakfj;asd';
L.Left:=..;
L.Top:=..;
Form1.InsertComponent(L);
end;

 
各位注意了:Label和Text的个数是多个且不定
 
动态添加label
var label1:TLabel;
begin
label1:=TLabel.create(form1);
label1.parent:=form1;
label1.caption:='asdfadsf';
label1.width:=...
label1.height:=...
label1.top:=...
label1.left:=...
end;

你要的是动态生成数据库的字段名称及DBEdit对吗?
如果是,我有一个控件可以完成此功能,请到我的主页
http://202.103.176.81/frun/shangrw/下载。
在第3页AutoPanel.zip
 
建议用Tlabel的Array,这样Label的多少可以任意定
var
MyLabel:array of TLabel;
begin
I:=找到纪录数;
Setlength(MyLabel,I);
For J:=0 to I-1 do
begin
MyLabel:=TLabel.Create(self);
MyLabel.Parent:=Form1;
MyLabel.Font.Color:=clWhite;
......
end;
end;
如果改变了数组的长度,注意Free.
 
既然和数据库相关,且记录数不定
我觉得还是不要动态创建Label的好,
否则记录数太多,说不定把系统资源耗光了,

试试<B>TDBCtrlGrid</B>吧!很适合你的问题
 
谢谢各位
记录数不定,还不至于有n条记录,估计0--20条,不是太大,
不用Grid类的控件是因为数据不可能用一条SQL语句查出
wgzhang的还可
有更好的suggest?
 
begin
...... //查找数据
while not eof do
with TLabel.Create(self) do
begin
Parent:=Form1;
Font.Color:=clWhite;
......
Next;
end;
end;
 
多人接受答案了。
 
后退
顶部