Subject | Re: [IBO] Flicker with IBObjects and EnhComponents |
---|---|
Author | Geoff Worboys |
Post date | 2003-08-07T22:49:32Z |
> I use the property AutoLabel of the components TIB_EditEnhI have not seen the problem myself, and I have some quite
> and in the operations of Insert, Cancel, Search, etc, the
> form raises all of the labels, causing an uncomfortable
> slowness. A Flicker in cascade, that begins of the top of
> the form and it is going to his bottom, traveling all of
> TIB_EditEnh.
> Does some exist sorts things out of avoiding that behavior?
complex forms. I generally use a Kind of albLeft with a
RelativePosition of -100. This works well for me.
However, a long while ago someone else reported similar
difficulties and I implemented a feature that can be used
to alleviate the problem. The following is from the online
help (you have to know where to look :-)...
- - -
In some configurations AutoLabels attached to controls can show
some redraw flicker (particularly when attached to detail
datasets of master/detail arrangements). This cannot be easily
avoided without stopping the labels from updating when actually
needed. So instead this global variable has been provided to
allow you to take control of the problem within your own
project.
For most projects you will be able to prevent unnecessary
redrawing of the autolabels simply by including the following
line in the OnCreate event of the main form (you will need
IBC_Label in the uses clause):
IB_AutoLabel_PreventFlicker := true;
However with the above change, if you make changes to dataset
or connection properties at runtime, then you may discover that
the autolabels are not updating as they should. In such cases
you may have to alter the section of your code where you alter
those properties so that:
IB_AutoLabel_PreventFlicker := false;
try
...your code...
finally
IB_AutoLabel_PreventFlicker := true;
end;
This will allow all label update requests to take place while
your code is executed, but turn off unnecessary updates when
you have finished.
The above code is not required with direct changes to the
AutoLabel itself, as these will detect such changes and force
the label to be updated.
- - -
I hope this helps.
--
Geoff Worboys
Telesis Computing