Subject | Re: [IBO] New behaviour of OnDataChange-Event |
---|---|
Author | guido.klapperich@t-online.de |
Post date | 2002-02-25T22:59:35Z |
> Not sure what would have caused this.I have a query ACQuery with 'select ACATID,.... from activities', ACATID is a
> Not sure what could reverse it either.
> Perhaps you could give more details.
> There is probably a better way to do what you are doing.
>
FK. ACATID can be changed with a Lookup-Query , which is linked to a
LookupCombo. In the OnDataChange-Event of the DataSource of ACQuery I ask
if Assigned(Field) then
if Field.FieldName='ACATID' then
do something
In the older versions of IBO this worked fine, but now (IBO 4.2 Fr) the
OnDataChange-Event doesn't fire, when I change ACATID. I looked in the
Release-Notes and I found this at release 4.2Fn:
I made it so that the OnDataChange events when doing column modifications would
distinguish between a direct assignment and an Assign() initiated assignment. I
made it so that when directly assigning a new value it would always announce a
datachange notification, whether or not the data value was actually changed.
Only the Assign() will suppress announcement of an OnDataChange notification
when the values are the same. This is important to have since the master-detail
linking relies upon it reaching a point that there are no longer any binary
differences between the linking columns. If there were differences or perpetual
announcement of data change events there would be an infinite looping, as was
the case in recent sub-releases where trying to keep the link between master and
detail perfectly accurate when using callbacks. Keep in mind, callbacks are off
by default for TDataset based stuff so this was only an issue to those using
callback support, which is a nice luxury now ready for the prime time in the
native IBO components and controls. I'd still be hesitant to turn them on in
TDataset based components.
Is this the reason for the new behaviour ?
Guido