等待救赎 发表于 2012-3-11 11:20:01

DELPHI中如何通过编程自动限制复选框数量

比如一共有6个复选框,只允许选择3个,超过3个就没法选择了,我是刚学的菜鸟哦,希望大大们能详细说下小弟感激不尽!下面是百度的代码,为什么变量j一点击组件直接变成6了? var I,J:integer;for i:=0 toself.ComponentCount-1 do if components is TCheckBox then if TCheckBox(Sender).checked then inc(j);if j<=3 then TcheckBox(Sender).checked:=true else TcheckBox(Sender).checked:=false

G0398 发表于 2012-3-11 12:13:41

self.ComponentCount-1是窗体上的控件总数吧   把它改成6

等待救赎 发表于 2012-3-11 14:08:33

G0398 发表于 2012-3-11 12:13 static/image/common/back.gif
self.ComponentCount-1是窗体上的控件总数吧   把它改成6

后面有if排除别的不成吗

G0398 发表于 2012-3-11 14:19:27

等待救赎 发表于 2012-3-11 14:08 static/image/common/back.gif
后面有if排除别的不成吗

delphi 中的控件数组我不会   你百度下【delphi控件数组】

prinsun 发表于 2012-7-25 15:59:11

把所有的TCheckBox的Click事件都挂钩到下面这个处理函数即可:procedure TForm1.CheckBoxChecked(Sender: TObject);
var
checkedCount, i: Integer;
begin
checkedCount := 0;
for i := 0 to Self.ComponentCount - 1 do
    if (Self.Components is TCheckBox)
   and TCheckBox(Self.Components).Checked then
      Inc(checkedCount);

if TCheckBox(Sender).Checked and (checkedCount > 3) then
    TCheckBox(Sender).Checked := False;

end;

11年__那些事儿 发表于 2012-7-25 20:16:38

   j没有初始化吧?应该是每次运行值都不一样,你试试!!!!!

刺客信条 发表于 2013-6-6 15:31:46

长长见识。。。。。。。。
页: [1]
查看完整版本: DELPHI中如何通过编程自动限制复选框数量