[fpc-pascal] IFPObserved

Michael Van Canneyt michael at freepascal.org
Wed Sep 11 09:54:26 CEST 2013



On Wed, 11 Sep 2013, Xiangrong Fang wrote:

> Hi Michael,
> 
> Thanks a lot for the explanation.   I am not familiar with a few concepts in your description, such as:
> 
> 1) What are "CORBA" style interfaces?  I know CORBA and DCOM are for distributed or remote object call.  Are they still significant in local object system?

CORBA is centered around the concept of interfaces. So is COM.

in COM, where Delphi got the concept of Interfaces, interfaces are reference counted.

FPC wished to introduce interfaces that do not have the overhead associated with reference counted.
So we decided to name them 'CORBA' interfaces. 
So CORBA interfaces are simply interfaces that are not reference counted. The name is by and large coincidental.

> 
> 2) Why an interface has "reference count"?

Because COM makes it so.

> 
> 3) What are "Live Binding"?  What's the difference between "IFPObserved" and the component events like OnCreate, OnShow, OnClick...?

See IFPObserved as a general event mechanism.

The main difference is that a component can have only 1 OnCreate handler.
whereas, in theory, an unlimited number of observers can observe one object.

> 
> 4) You mentioned "implement the Live Bindings of Embarcadero in a rather trivial manner", does that mean IFPObserved is a FPC/Lazarus feature which is not compatible with Delphi?

It is not compatible on purpose, for 2 reasons:

1. It was designed long before Live Bindings existed.

2. The Live Bindings are simply horribly designed, I have no wish to introduce this mess in FPC.

> 
> 5) I am very interested in your CD-Cover designer. please send me the article and code.

I will do so later today.

Michael.


More information about the fpc-pascal mailing list