[fpc-devel] {$Interfaces Corba} and TInterfacedObject
Graeme Geldenhuys
graemeg.lists at gmail.com
Thu Nov 29 08:48:57 CET 2007
Hi,
I previously asked what is the difference between the supported
$Interfaces types. eg: Corba vs COM.
>From those replies, they are very much the same, except that Corba
interfaces are NOT reference counted.
So what do I use to create interfaces and classes that implement interfaces?
Which declaration style do I use? Or doesn't it make a difference?
type
ICommand = interface(IInterface)
vs
ICommand = interface(IUnkown)
vs
ICommand = interface
Now for created classes that implement those interfaces. What base
object do I use?
type
TCommandClass = class(TInterfacedObject, ICommand)
vs
TCommandClass = class(TSomeCustomNonReferenceCountedClass, ICommand)
I can't imagine that usig Corba style interfaces that I'm allowed to
use TInterfacedObject as a based class, because TInterfacedObject
implements reference counting. Is there some other base class I'm
supposed to use with Corba style interfaces?
Does FPC have a Non-Reference counted base class already? It's quite
simple to implement you own, but is stupid if FPC doesn't already have
one.
Also, do I have to specify {$Interfaces Corba} in every unit I have,
or is it only needed in the using that defines the interface itself?
Basically, is that compiler setting unit based or project (global)
based. Why I ask, is because {$mode xxx} is unit based, not global
across my whole project. So can I mix Reference counted and
Non-Reference counted interface styles in the same project?
I found find any help referencing these issues.... The help topics on
interfaces and $Interfaces styles are very vague.
Regards,
- Graeme -
_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/
More information about the fpc-devel
mailing list