回 帖 发 新 帖 刷新版面

主题:如何写一个循环让checkbox1-checkbox60全部选中

如何写一个循环让checkbox1-checkbox60全部选中

回复列表 (共5个回复)

沙发

procedure TForm1.Button1Click(Sender: TObject);
var
  Idx : integer;
  Chx : string;
  P   : pointer;
begin
  for Idx := 1 to 60 do
    begin
    Chx := 'CheckBox'+InttoStr(Idx);
    P := Self.FieldAddress(Chx);
    if P <> nil then
       TCheckBox(P^).Checked := True;
    end;
end;

板凳

如果某容器上有且仅有这1-60个CheckBox, 也可以用FindComponent  Components 或FindControl  Controls实现.

3 楼

上面讲的方法二的示例代码如下:

procedure TForm1.Button2Click(Sender: TObject);
var
  Idx : integer;
begin
  for Idx := Self.ComponentCount-1 downto 0 do
    if Self.Components[Idx] is TCheckBox then
      TCheckBox(Self.Components[Idx]).Checked := True;
end;

不过这样做的结果是, 如果Form上有1-70个CheckBox, 则会把它们全部为True

4 楼

你的水平越来越高了,佩服啊

5 楼


[em8]

我来回复

您尚未登录,请登录后再回复。点此登录或注册