一个简单问题

sunnysmile 2005-11-17 10:40:02
我现在有10个CheckBox,即CheckBox1..CheckBox10
现在想做一个循环
var
i:integer;
for i:=1 to 10 do
begin
if CheckBoxi.Checked then
begin
......
end;
end;

上面我写的不对,但是是要实现这样的功能,不知道该怎么改,谢谢!
...全文
92 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mastersky 2005-11-17
  • 打赏
  • 举报
回复
这个函数需要是窗体中的函数,否则要改成这样:
var
i:integer;
for i:=1 to 10 do
begin
if TCheckBox(Form1.FindComponent('CheckBox'+IntTostr(i))).Checked then {Form1是窗体名}
begin
......
end;
end;
mastersky 2005-11-17
  • 打赏
  • 举报
回复
我现在有10个CheckBox,即CheckBox1..CheckBox10
现在想做一个循环
var
i:integer;
for i:=1 to 10 do
begin
if TCheckBox(FindComponent('CheckBox'+IntTostr(i))).Checked then {if CheckBoxi.Checked then}
begin
......
end;
end;
老之 2005-11-17
  • 打赏
  • 举报
回复
var CheckBox:array[1..10] of TCheckBox;
i:integer;

for i:=1 to 10 do
begin
CheckBox[i]:=TCheckBox.Create(self);
CheckBox[i].Parent:=Form1;
CheckBox[i].Top:=i*20;
CheckBox[i].Caption:='CheckBox'+IntToStr(i);
CheckBox[i].Show;
end;

for i:=1 to 10 do
begin
if CheckBox[i].Checked then
begin
......
end;
end;
cxj1976 2005-11-17
  • 打赏
  • 举报
回复
var
i:integer;
l_Checkbox: TComponent;
for i:=1 to 10 do
begin
l_Checkbox:=FindComponent('CheckBox' + IntToStr(i));
if (l_CheckBox is TCheckBox) and (l_CheckBox as TCheckBox).checked then
begin
......
end;
end;
chaosbird 2005-11-17
  • 打赏
  • 举报
回复
对CheckBox1写事件
CheckBox2-CheckBox10 对事件赋值
marf_cn 2005-11-17
  • 打赏
  • 举报
回复
楼上的已经写出答案了,你接着写就可以了:
if Components[i] is TCheckBox then begin
if (Components[i] as TCheckBox).checked then begin
.......
end;
end;
sunnysmile 2005-11-17
  • 打赏
  • 举报
回复
我现在只要这十个CheckBox,因为我还有一些CheckBox11...CheckBoxn
这样的话应该怎么改?
skertone 2005-11-17
  • 打赏
  • 举报
回复
var
ii: Integer;
begin
for ii := 0 to ComponentCount - 1 do
if Components[ii] is TCheckBox then
(Components[ii] as TCheckBox).doSomething.....

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧