以编程方式响应dbCheckbox更改

时间:2016-10-22 10:39:06

标签: delphi

我在表单上没有DBCheckbox,我希望能够以编程方式检查/取消选中其中一个或多个,具体取决于用户是否在同一表单上检查/取消选中不同的DBCheckbox我似乎无法使用onclick事件

执行此操作

3 个答案:

答案 0 :(得分:3)

  

我似乎无法使用onclick事件

执行此操作

原因是数据库感知组件(如TDBCheckBox)的状态与它们所连接的数据集的状态之间存在紧密耦合。如果你试图通过尝试设置组件的gui状态(例如DBCheckBox的Checked状态)来干扰这一点,那么这些组件所有工作的db-aware模型都会在每一寸路上对你不利,因为你是有效的试图破坏组件的gui状态与相应数据集字段中的值保持同步的机制。

所以,正如Val Marinov所说的那样,你需要做的就是操纵字段值,如下所示:

if MyDataSet.FieldByName('OtherBooleanField').AsBoolean <> RequirdValue then begin
  if not (MyDataSet.State.State in [dsInsert, dsEdit]) then
    MyDataSet.Edit;
  MyDataSet.FieldByName('OtherBooleanField').AsBoolean := RequiredValue;  

由你决定触发的是什么触发器来执行这样的代码。

答案 1 :(得分:0)

on clickevent复选框设置Field of appropriate复选框

答案 2 :(得分:0)

在字段的OnChange事件中,更改需要更改的其他字段的值。