当前位置:主页>仓库管理软件> 列表

循环生成checkBox控件

销售管理软件版1楼: 在delphi中,如何利用循环生成一行为五个的checkbox呢.

2楼: for i:=1 to 5 do
with TCheckBox.Create(Self) do
begin
Left := ...
Top := ...
end; 如免费记账软件

3楼: var i: Integer;
begin
for i:= 0 to 5 do
begin
with TCheckbox.Create(frmMain) do
begin
Parent := frmMain;
Name := ''CheckBox'' + IntToStr(i);
Caption := ''fuck''+ IntToStr(i);
Left := 20 + i*80;
Top := 20;
Width := 97;
Height := 17;
end;
end;

4楼: checkbox要建在一个GroupBox中,应怎样写呢?

5楼: 谢谢您的解答,已经使用了.[:)]

6楼: 那把shine007的代码改动一下就可以了啊

procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
for i:= 0 to 5 do
begin
with TCheckbox.Create(nil) do
begin
Parent := GroupBox1;
Name := ''CheckBox'' + IntToStr(i);
Caption := ''fuck''+ IntToStr(i);
Left := 20 + i*80;
Top := 20;
Width := 97;
Height := 17;
end;
end;
end;

销售管理软件版7楼: var
i,t:integer;
chb:Tcheckbox;
begin
t:=20;
for i:=0 to 4 do
begin
chb:=Tcheckbox.Create(self);
chb.Top:=t;
chb.Left:=2;
chb.Caption:=inttostr(i);
chb.Parent:=groupbox1;
inc(t,chb.Height+2);
end;
end;

8楼: 不好意思再请教一下,因为我是根据不同的选择动态生成checkbox,在生成一组checkbox后,再次进入循环生成的checkbox将与上一组重名,出错.如何自动删除刚刚建立的checkbox控件.

9楼: 别指定动态生成的checkbox的name属性
free掉就行了

10楼: checkbox的名字是动态生成的, Name := ''CheckBox'' + IntToStr(i);
想用循环一一删除,''CheckBox'' + IntToStr(i).free;不行啊.

11楼: 你要name干吗?

12楼: 动态生成的CheckBox,它的Caption是所选中的表的字段名.CheckBox是用来判断是否选中了这个字段,如果选中则在Grid中显示这个字段,否则不显示.如果不用name怎么判断这个CheckBox是否选中啊? 如进销存数据库设计

13楼: 用数组。。。。

chks:array of Tcheckbox;
然后用chks[i].checked 来判断