楼主你对delphi里的继承关系还不是很清楚.for i:=0 to ComponentCount-1 do是遍历当前form的所有vcl组件if Components[i].ClassName='TCheckBox' then 就是如果遍历的时候当前的组件的类名是TCheckBox的话条件成立,也可以换成
if Components[i].ClassType=TCheckBox then两句一样的效果if (Components[i] as TCheckBox).Checked then是判断当前组件(TCheckBox类型)是否被选中,也可以用下面的方式来写if TCheckBox(Components[i]).Checked then,后面你要怎么显示就看你自己喜欢了
for i:=0 to ComponentCount-1 do //很显然从基数0开始遍历每一个控件
begin
if Components[i].ClassName='TCheckBox' then //判断这个控件的类名是不是TCheckBox也就是是否是你想判断的那个
if (Components[i] as TCheckBox).Checked then} //对该控件进行强制转化以便使用该控件的方法和属性,在这里主要作为TCheckBox看看是否被选中
貌似楼上有些东西和keiy是倒过来的`
``
能解释下代码的意思吗?
看不明`````
{for i:=0 to ComponentCount-1 do
begin
if Components[i].ClassName='TCheckBox' then
if (Components[i] as TCheckBox).Checked then}
var i:integer;
temp:tcomponent;
begin
for i:=componentcount-1 downto 0 do
begin
temp:=components[i];
if (temp is tcheckbox)then
beign
if (temp as tcheckbox).checked then
{}
end;
end;
end;
嘿嘿,不懂有没有写错~
keiy() 解释下代码的意思吗?
看不明`````
{for i:=0 to ComponentCount-1 do
begin
if Components[i].ClassName='TCheckBox' then
if (Components[i] as TCheckBox).Checked then}
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
Memo1.Clear;
for i:=0 to ComponentCount-1 do
begin
if Components[i].ClassName='TCheckBox' then
if (Components[i] as TCheckBox).Checked then
Memo1.Lines.Add(Components[i].Name);
end;
end;
if CheckBox1.Checked then
showmessage('checkbox1 選中了')
else
showmessage('checkbox1 沒有選中了')
if CheckBox2.Checked then
showmessage('checkbox2 選中了')
else
showmessage('checkbox2 沒有選中了')
...........
if CheckBoxN.Checked then
showmessage('checkboxN 選中了')
else
showmessage('checkboxN 沒有選中了')