现在遇到了这样一个问题,在一个FORM里有二十多个checkbox,按一个按钮,对它们都置为checked.能否采用for语句来完成??总不能一个个地去完成吧。
例:for i:= 0 to 20 do
    begin
    .....
    end;
中间的代码该如何写啊??
是不是有类似的:checkbox[i].checked  ....????

解决方案 »

  1.   

    if componet[i] is TCheckbox then
      (componet[i] as TCheckbox).checked...
      

  2.   

    for i:= 0 to 20 do
        begin
          CheckBox[i].Checked := Checked;   
        end;
      

  3.   

    哦,不对,应该是:
    for i:= 0 to 20 do
        begin
          CheckBox[i].Checked := True;  
        end;
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var I:integer;
    begin
        for I:=0 to self.ComponentCount-1 do
        begin
            if self.Components[I] is TCheckBox then
            (Self.Components[I] as TCheckBox).Checked:=True;
        end;
    end;
      

  5.   

    上面的代码,你必须保证CheckBox都在form上面排放,否则替换程序中的self变量...
      

  6.   

    就是获取窗体的所有控件,判断是否是checkbox,如果是,就赋值
    for i:=0 to self.ComponentCount - 1 do
        begin
            if self.Components[i] is TCheckBox then
            with TWinControl(self.Components[i]) do
            begin
              checked:=true;
            end;//with    end;//for i
      

  7.   

    for i :=1 to 20 do
        
        Tcheckbox(findcomponent('checkbox' + inttostr(i))).checked:=true;