需要实现功能:checkbox模拟radiobutton功能
因为checkbox的checked的改变有三种方式,
第一种是直接调用语句:checkbox.checked:=true/false;
第二种是直接点击这个控件,当然前提是要有checkboxClick事件.
第三种是state 表示复选框的当前状态.
cbchecked 表示选中,
cbunchecked表示未选中,
cbGrayed表示变灰状态.(allowgrayed 设置true时)
直接点击checkbox的时候要发生一组反应,比如界面上数据的显示变化.而当直接用第一种方法 (checkbox.checked:=true)时,要求没有什么变化,只要打个勾就行了.但这样的语句调用会激发checkbox的 onclick事件,而这是我不想看到的结果.
解决方法:使用焦点(Focused)来区别操作.
就是checkbox的焦点.如果是点击的话,则其焦点就应该为true,
而用语句改变时,checkbox的焦点不为true.这样就能区分两种情况了,
在checkbox的onclick事件中加入的焦点判断这一个条件.
if not chkRelation.Focused then Exit;
Form上面有2个checkbox:A和B,点击勾选其中一个,自动取消另外一个,并且必须有一个按钮选中,和radiobutton效果一样
第一步实现按钮切换效果,但是选中一个后再点击它就会取消选中,例如选中A自动取消选择B,再点击A,A也会取消选中状态,即A和B都未选中:
procedure TForm1.checkbox1Click(Sender: TObject);
begin
if not
checkbox
1.Focused then Exit;
checkbox
2.Checked := False;
end;
procedure TForm1.
checkbox
2Click(Sender: TObject);
begin
if not
checkbox
2.Focused then Exit;
checkbox
1.Checked := False;
end;
第二步实现radiobutton最终效果:
procedure TForm1.checkbox1Click(Sender: TObject);
begin
if not checkbox1.Focused then Exit;
checkbox1.ReadOnly := True;
checkbox2.ReadOnly := False;
checkbox2.Checked := False;
end;
procedure TForm1.checkbox2Click(Sender: TObject);
begin
if not checkbox2.Focused then Exit;
checkbox2.ReadOnly := True;
checkbox1.ReadOnly := False;
checkbox1.Checked := False;
end;
因为
checkbox
的
checked
的
改变
有三种方式,
第一种是直接调用语句:
checkbox
.
checked
:=true/false;
第二种是直接点击这个控件,当然前题是要有
checkbox
Click
事件
.
第三种是state 表示复选框的当前状态.
cb
checked
表示选中,
cbun
checked
表示未选中,
cbGrayed表示变灰状态.(allowgrayed 设置
在研究如何使点击处于已点击状态(
checked
=true)的
RadioButton
时
取消选中的
时
候,发现了它的按键
事件
很是让人纠结。
设有一个rb1:T
RadioButton
;
鼠标点击
时
的
事件
如下:
0.rb1.
checked
=false;
1.rb1MouseDown() //进入鼠标按下
事件
2.rb1MouseUp() //进入鼠标抬起
事件
3.判断rb1.
checked
状态,
The T
CheckBox
Delphi
control displays a
checkbox
that can be on (
checked
) or off (un
checked
). The
Checked
property specifies whether the
checkbox
is
checked
or not.
T
CheckBox
Delphi
控件显示一个可以打开(选中)或关...
本文分享下,设置复选框
checkbox
为只读(readonly)模式的两种方式,它们是return false与this.
checked
。有需要的朋友参考下吧。
很多
时
候,我们需要设置
checkbox
复选框中的选项为只读模式。
下面为大家介绍二种方法。
例1,由于
checkbox
无readOnly属性,使用disabled=“disabled”属性,只会让
checkbox
变成灰色。
您可以在
checked
属性发生变化
时
,使用
事件
监听器来
触发
某个
事件
。例如,如果您使用的是HTML中的
checkbox
元素,可以使用JavaScript来为它添加
事件
监听器。以下是一个示例代码:
```html
<input type="
checkbox
" id="my
Checkbox
" />
<script>
const my
Checkbox
= document.getElementById('my
Checkbox
');
my
Checkbox
.addEventListener('change', function() {
if (this.
checked
) {
//
触发
某个
事件
</script>
在这个示例中,我们为
checkbox
元素添加了一个
事件
监听器,当它的
checked
属性发生变化
时
,会
触发
change
事件
。在
事件
处理函数中,我们检查
checkbox
的
checked
属性是否为true,如果是,则执行一些操作,例如
触发
另一个
事件
。
_平凡之路_: