On Sun, 8 Jul 2012, Luiz Americo Pereira Camara wrote:
Currently the db lookup controls tries to open the dataset linked to
ListSource if is closed at lookup initialization.
The initialization occurs after the control is loaded (streamed) or when a
related db property is changed in the control. This behavior can leads to
opening the dataset at unpredictable time or even twice (if the programmer
opens the dataset after loading of the control). Also it can trigger events
like AfterOpen in improper moments, e.g., data structures not initialized.
Removing this feature, that is LCL specific, can have side effects in
projects that do not open explicitly the ListSource dataset or closes it when
the lookup control is still in use.
Recently two bugs were reported due to this behavior (see
http://bugs.freepascal.org/view.php?id=22387
http://bugs.freepascal.org/view.php?id=22337
http://lazarus.freepascal.org/index.php/topic,17355.msg96112.html )
So, removing this feature has the benefits of a cleaner code and better user
control when to open the dataset thus avoiding potential bugs and decreased
performance. The drawback is that it can affect programs that relies in that
behavior although it should be easily fixable and if there's a good moment
for such changes is now since 1.0 has already branched.
Why not introduce a boolean property OpenLookupDataset to control this
behaviour ?
Michael.
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus