如何在程序运行时动态创建多个按钮,使运行的效果为出现在一个固定的位置,并且这多个按钮的安排是几行几列的一个矩形,具体如下:
Botton1 Botton2 Botton3 Botton4
Botton5 Botton6 Botton7 Botton8
Botton9 Botton10 Botton11 Botton12
高手帮帮忙啊,我知道可以用for循环或者数组,但是我不会写代码,老是错,达不到效果啊,急!!!
Botton1 Botton2 Botton3 Botton4
Botton5 Botton6 Botton7 Botton8
Botton9 Botton10 Botton11 Botton12
高手帮帮忙啊,我知道可以用for循环或者数组,但是我不会写代码,老是错,达不到效果啊,急!!!
解决方案 »
- Delphi,请教一个TdxNavBar控件中添加TTreeView控件的问题
- Application.CreateForm主要做那些工作?
- 请教:mouse在DBGRid上移动时如果得知移动到哪条记录上?
- 如何把网页中带<img ....>的这些标签都去掉
- 怎样读写注册表中REG_DWORD中的值?
- 三层数据更新的奇怪问题,请教如何解决
- 文本文件可以嵌套在OleContainer中吗?大虾帮忙!
- 哪里有delphix for delphi 6.0的
- 定义变量时,变量名称由字符串的值确定
- 有没有办法在调用exe程序时输入进口参数?如给一个txt文件路径 例:IDo.exe "c:\temp.txt"
- delphi开发的程序资源释放问题。为什么用一些内存泄漏软件检测会出现很多地方有泄漏。
- 求POS机应用的进销存软件,UP有分!
var aButton : TButton;
i, x, y : integer;
begin
x := 0; y := 0;
for i := 1 to 12 do
begin
aButton:=TButton.Create(self);
x := x + 100;
with aButton do
begin
if i mod 4 =1 then
begin
x := 0;
y := y + 30;
end;
Left := x;
Top := y;
Parent := Form1;
Caption := 'Button'+IntToStr(i);
end
end;
end;
for i := 1 to 12 do // 这里控制Button的总共个数
....
if i mod 4 =1 then // 这里控件一行Button的个数
var
Btns:array[0..11] of TButton;
I,J :Integer;
X,Y :Integer;
begin
X:=0;
Y:=0;
for I:=0 to Length(Btns)-1 do
begin
if (I mod 4)=0 then
begin
Y:=Y+40;
X:=0;
end;
X:=X+100;
Btns[I]:=TButton.Create(nil);
Btns[I].Parent:=Form1;
Btns[I].Width:=75;
Btns[I].Height:=25;
Btns[I].Left:=X;
Btns[I].Top:=Y;
Btns[I].Name:='Button'+InttoStr(I+1);
end;
end;
procedure TForm1.btn2Click(Sender: TObject);
var
I:Integer;
begin
I:=0;
while (I<=ComponentCount-1) and (I>=0) do
begin
if (Components[i].ClassType=TButton) and (leftstr(TButton(Components[i]).Name,6)='Button') then
begin
Components[I].Destroy;
I:=I-1;
end;
I:=I+1;
end;
Update;
end;