自动创建组件如何换行(30分)

  • 主题发起人 主题发起人 灵魂26
  • 开始时间 开始时间

灵魂26

Unregistered / Unconfirmed
GUEST, unregistred user!
我用自动创建组件的方法创建了标签、文本框,我想让他们5个一行,到5个自动换行,请问这个5个一行的换行怎么实现!
如下是我创建组件的代码:
public
nEdit : array [1..30] of TEdit;
nLabel : array[1..30] of Tlabel;
procedure TForm1.FormCreate(Sender: TObject);
var
i,ie,il : Integer;
begin
il := (form1.Width-130*5)div 2

ie := (form1.Width-130*5)div 2+40;
for I := 1 to 30 do // Iterate
begin
nlabel :=Tlabel.Create(form1);
nlabel.Parent :=Form1;
nlabel.Caption :='aaa';
nlabel.Top := 20;
nLabel.Left :=il + ((i-1)*130);
nLabel.Font.Color :=clmaroon;

nEdit := TEdit.Create(Form1);
nEdit.Top := 20;
nEdit.Left := ie + ((i-1) * 130);
nEdit.Width := 70;
nEdit.Parent := Form1;
end

end
 
呵呵:这样
procedure TForm1.FormCreate(Sender: TObject);
var
i,j,k ie,il : Integer;
begin
il := (form1.Width-130*5)div 2

ie := (form1.Width-130*5)div 2+40;
for j := 1 to 5 do // Iterate
for k:= 1 to 6 do
begin
i:=(k-1)*5+j;
nlabel :=Tlabel.Create(form1);
nlabel.Parent :=Form1;
nlabel.Caption :='aaa';
nlabel.Top := 20+(k-1)*50;
nLabel.Left :=il + ((j-1)*130);
nLabel.Font.Color :=clmaroon;

nEdit := TEdit.Create(Form1);
nEdit.Top := 20+(k-1)*50;
nEdit.Left := ie + ((j-1) * 130);
nEdit.Width := 70;
nEdit.Parent := Form1;
end

end;
 
解决了吗?
 
请yostgxf仁兄给讲讲如果
 
解决了但是还是不怎么明白,有空办讲讲吧 谢谢了
 
你的意思是把组件5个一排,排起来嘛
你把组件分成5个一组,来控制top坐标就行了。我加了j,k俩个变量,主要是懒的修改你的i 了。
问题解决了吗?
 
请问有QQ号吗 可以告诉吗 30分马上送到
 
j来表示列,用来控制Left。k来表示行,用来控制top。其它代码都是你自己的。
 
接受答案了.
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
916
SUNSTONE的Delphi笔记
S
I
回复
0
查看
625
import
I
I
回复
0
查看
574
import
I
后退
顶部