[fpc-pascal] FPObserver Examples anywhere?
Graeme Geldenhuys
graeme at geldenhuys.co.uk
Thu Nov 15 14:29:44 CET 2012
On 2012-11-15 01:15, bsquared wrote:
> Hello,
>
> Does anyone know of any example code for the FPObserver interface?
> Preferable with Collections.
Sure, see attached. It's very basic, but shows the functionality.
NOTE:
I used latest 2.7.1 compiler, where some base classes in the RTL
support the IFPObserved interface.
And the demo output is as follows:
------------------------------------
$ ./fpobserver_demo
TStringList has changed [ooChange]
TStringList has changed [ooChange]
TStringList has changed [ooChange]
[ooFree] detected so we should detach ourselves
------------------------------------
This does raise some points of interest though.
1) I would probably surface the IFPObserver methods to Public. Though
there is good arguments to not do it either - thus you are forced
to use correct interface usage... via Supports(), getting a
interface pointer back, and using that interface pointer to make
method calls.
2) Even though I did two Add() calls and one Delete() call, TStringList
reported the operation as simply ooChanged. Correct, but not very
precise. After all, we also have ooAdd, ooDelete operation states
we could work with.
3) My personal preference is that the Observed automatically detaches
Observers in the destructor. But this is just a personal preference
in my own code.
Regards,
- Graeme -
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fpobserver_demo.pas
Type: text/x-pascal
Size: 1619 bytes
Desc: not available
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20121115/193f3f6a/attachment.pas>
More information about the fpc-pascal
mailing list