Mike
Mike

Reputation: 1

responding to dbCheckbox changes programmatically

I have a no of DBCheckboxes on a form I want to be able to check/uncheck one or more of these programmatically depending upon whether the user checks /unchecks a different DBCheckbox also on the same form I cant seem to be able to do this using the onclick event

Upvotes: 0

Views: 535

Answers (3)

MartynA
MartynA

Reputation: 30715

I can't seem to be able to do this using the onclick event

The reason is the tight coupling between the state of db-aware components such as TDBCheckBox and that of the dataset they are connected to. If you attempt to interfere with this by trying to set the gui state of the component (e.g. the Checked state of a DBCheckBox), the db-aware model these components all work to will fight you every inch of the way, because you are effectively trying to subvert the mechanism by which the gui state of the component is kept in sync with the value in the corresponding dataset field.

So, as Val Marinov correctly said, the thing you need to do is to manipulate the field value instead, as in the following:

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

It's up to you what trigger you respond to, to execute code like this.

Upvotes: 3

GolezTrol
GolezTrol

Reputation: 116110

In the OnChange event of the fields change the values of the other fields that need to change.

Upvotes: 0

mano
mano

Reputation: 308

on clickevent of check box set the Field of appropriate checkbox

Upvotes: 0

Related Questions