主题:如何写一个循环让checkbox1-checkbox60全部选中
xiulin
[专家分:200] 发布于 2007-06-25 16:04:00
如何写一个循环让checkbox1-checkbox60全部选中
回复列表 (共5个回复)
沙发
长尾兔 [专家分:3630] 发布于 2007-06-25 23:33:00
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;
板凳
长尾兔 [专家分:3630] 发布于 2007-06-25 23:34:00
如果某容器上有且仅有这1-60个CheckBox, 也可以用FindComponent Components 或FindControl Controls实现.
3 楼
长尾兔 [专家分:3630] 发布于 2007-06-25 23:41:00
上面讲的方法二的示例代码如下:
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 楼
xiulin [专家分:200] 发布于 2007-06-29 16:34:00
你的水平越来越高了,佩服啊
5 楼
长尾兔 [专家分:3630] 发布于 2007-06-29 20:33:00
[em8]
我来回复