小问题,急用!(50分)

  • 主题发起人 主题发起人 jzrenxiaoyan
  • 开始时间 开始时间
J

jzrenxiaoyan

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在单击button1时,listbox1下动态生成10个checkbox,如何实现啊?
帮我看看哪里错了啊?多谢!!!!!!!!!1
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
acheckbox:array of Tcheckbox;
begin
for i:=0 to 10 do
begin
acheckbox:=Tcheckbox.Create(self);
listbox1.InsertControl(acheckbox);
acheckbox.Name:='s'+inttostr(i);
end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
acheckbox:array of Tcheckbox;
begin
SetLength(acheckbox, 10);
for i:=0 to 9 do
begin
acheckbox:=Tcheckbox.Create(self);
listbox1.InsertControl(acheckbox);
acheckbox.Top := ListBox1.Top+ 20*i;
acheckbox.Name:='s'+inttostr(i);
end;
end;
 
现在的代码只能创建一个CheckBox
 
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
acheckbox:array of Tcheckbox;
begin
SetLength(acheckbox, 10);
for i:=0 to 9 do
begin
acheckbox:=Tcheckbox.Create(self);
listbox1.InsertControl(acheckbox);
acheckbox.Top := + 20*i;
acheckbox.Name:='s'+inttostr(i);
end;
end;

这样子就可以了,并且你要把ListBox拉长一点,它才能放得下10个CheckBox啊
 
acheckbox.Top := + 20*i; 多了个加号
要改成
acheckbox.Top := 20*i;
 
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
acheckbox:array of Tcheckbox;
begin
SetLength(acheckbox, 10);
for i:=0 to 9 do
begin
acheckbox:=Tcheckbox.Create(self);
listbox1.InsertControl(acheckbox);
acheckbox.Top := 20*(i+1);
acheckbox.Name:='test'+inttostr(i);
end;
end;
 
谢谢各位
问题解决了
 
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
acheckbox:array of Tcheckbox;
begin
SetLength(acheckbox, 10);
for i:=0 to 9 do
begin
acheckbox:=Tcheckbox.Create(self);
listbox1.InsertControl(acheckbox);
acheckbox.Top := 20*i;
acheckbox.Name:='s'+inttostr(i);
end;
end;
为什么我测试时,它添加一次后,再点击Bntton1控件会有错误了,提示已有S0,不可以再次点击吗?
 

Similar threads

S
回复
0
查看
688
SUNSTONE的Delphi笔记
S
S
回复
0
查看
683
SUNSTONE的Delphi笔记
S
I
回复
0
查看
686
import
I
I
回复
0
查看
673
import
I
后退
顶部