简单问题:如何在一组CheckBox中实现只允许同时选择任意两个CheckBox(50分)

  • 主题发起人 主题发起人 大木头
  • 开始时间 开始时间

大木头

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在一组CheckBox中实现只允许同时选择任意两个CheckBox
并且返回两个CheckBox的Caption.
 
定义两个全局变量
CheckBoxA: TCheckBox;
CheckBoxB: TCheckBox;

把所有CheckBox的onClick事件指向以下过程
procedure TForm1.CheckBox1Click(Sender: TObject);
var nowBox:TCheckBox;
begin
nowBox:=Sender as TCheckBox;
if nowBox.Checked then
begin
if CheckBoxA<>nil then CheckBoxA.Checked:=false;
CheckBoxA:=CheckBoxB;
CheckBoxB:=nowBox;
end
else if CheckBoxA=nowBox then
begin
CheckBoxA:=nil
end
else if CheckBoxB=nowBox then
begin
CheckBoxB:=CheckBoxA;
CheckBoxA:=nil;
end;
end;

 
呵呵,忘了返回CAPTION,
定义三个变量
CheckBoxA: TCheckBox;
CheckBoxB: TCheckBox;
CheckBoxC: TCheckBox;

在上面的过程中begin后加入一句
CheckBoxC=nowBox;

这样CheckBoxB.Caption和CheckBoxC.Caption就是选中的CheckBox
当然,调用前要先检查是否为nil
 
天……低级错误:
CheckBoxC:=nowBox; :)

如果对界面要求不严格的话,建议用CheckBoxList比较方便,用一个循环判断Checked的
Item个数就可以了
 
定义一个数组变量number:array [1。。2] of string,初始为''
选择一个CHECKBOX时设置number=checkbox.name;
如果去除,设置为‘’,这样可以在选择下一个时用(number as TCheckBox).checked:=false!:)
 
多人答案被接受,谢谢各位!
 
后退
顶部