var
i:Integer;
frmComponent:TComponent;
z : String;
begin //确定
with GroupBox1 do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i] is TCheckBox then
if TCheckBox(Controls[i]).Checked =true then
z := TCheckBox(Controls[i]).Caption;
zz := zz +','+z;
end;
end;
Dialogs.ShowMessage(zz);
end;
怎么遍历容器上CheckBox 值为true的caption?
i:Integer;
frmComponent:TComponent;
z : String;
begin //确定
with GroupBox1 do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i] is TCheckBox then
if TCheckBox(Controls[i]).Checked =true then
z := TCheckBox(Controls[i]).Caption;
zz := zz +','+z;
end;
end;
Dialogs.ShowMessage(zz);
end;
怎么遍历容器上CheckBox 值为true的caption?
var
i:integer;
begin
for i:=1 to form1.ComponentCount do
begin
if form1.Components[i-1] is Tcheckbox then
begin
if Tcheckbox(form1.Components[i-1]).checked then
showmessage(Tcheckbox(form1.Components[i-1]).caption);
end;
end;
end;
showmessage(Tcheckbox(form1.Components[i-1]).caption);
1楼你那句可以弹出被选择的内容
但是为什么我加个变量z,改成
z := Tcheckbox(form1.Components[i-1]).caption;
showmessage(z);
就会弹出没被选中的那些的空值
if Tcheckbox(form1.Components[i-1]).checked then
begin
z:=Tcheckbox(form1.Components[i-1]).caption;
showmessage(z);
end;没问题啊你是不是if下面没有begin end?
begin
for i:=0 to ControlCount-1 do
if Controls[i] is Tcheckbox then
begin
if Tcheckbox(Controls[i]).checked then
z :=Tcheckbox(Controls[i]).caption;
Dialogs.ShowMessage(z); //同等于showmessage(z);
end;
end;
这里是我写的代码
我在容器上遍历的而不是窗体上.
var
i: Integer;
frmComponent: TComponent;
//z: string;
zz: string; //再次定义一下
begin //确定
zz := '';//初始化一下,免得出编译提示
with GroupBox1 do
begin
for i := 0 to ControlCount - 1 do
begin
if Controls[i] is TCheckBox then
if TCheckBox(Controls[i]).Checked then
zz := zz + ',' + TCheckBox(Controls[i]).Caption;
end;
end;
Dialogs.ShowMessage(zz);
end
if Tcheckbox(Controls[i]).checked then
begin
z :=Tcheckbox(Controls[i]).caption;
Dialogs.ShowMessage(z); //同等于showmessage(z);
end;
是小弟的失误,少了个begin ...end
最后还有个问题
zz := zz + ',' + TCheckBox(Controls[i]).Caption;
这里判断只有一个的时候不能根据i来判断吧?
指的是只有一个TCheckBox为true的时候我怎么判断?不要逗号
begin
z :=Tcheckbox(Controls[i]).caption;
Dialogs.ShowMessage(z); //同等于showmessage(z);
end;
记得放在begin end之间