Em 28/8/2012 12:46, michael.vancann...@wisa.be escreveu:


On Tue, 28 Aug 2012, Luiz Americo Pereira Camara wrote:

Em 28/8/2012 09:15, michael.vancann...@wisa.be escreveu:


On Tue, 28 Aug 2012, Luiz Americo Pereira Camara wrote:


Why not let TFPObservedOperation as integer and define constants.

It could define a constant like ooUser = 32
Below ooUser is reserved for future default constants
Above ooUser could be added custom messages
This is how LCL messages works

Exactly because it is not meant as a general messaging interface, and I want the interface to reflect this.

There is a clear intended use case: Mainly notification of changes.

This is the purpose i intend to use (replace my implementation). Basically is a tree structure that needs to be observed. To avoid performance problems like having to parse all the tree when a change occurs i defined actions when a Child is added, deleted or inserted.

Exactly. You should use ooAddItem, ooDeleteItem, and pass the treenode in Data.


To be clear what i would need to do with the current approach:

Your example is not correct. I don't see why you would not use ooItemAdded.

This was just the first thing that comes in mind.

I have a simple interface to observing a tree. Looking more carefully i really can use ooItem* for children. I also defined a "Change" notification for the object itself plus another for the child/item but i could differentiate using data as nil. The other missing one is to Load (lazy loading)


We can agree on the exact number of operations that we define, but I will
not implement a system with an open number of operations.

I will do some tests and inform if there's a generic enough case to be included as a default notification

Thanks for the explanations

Luiz

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to