TAggregatedObject class
Aggregated object.
Declaration
TAggregatedObject = class(TObject)Inheritance
- TAggregatedObject
- TObject
Descends from it: TContainedObject
Description
TAggregatedObject implements an object whose lifetime is
governed by an external object (or interface). It does not implement the
IUnknown interface by itself, but delegates all methods to the controller
object, as exposed in the
Controller
property. In effect, the reference count of the aggregated object is the
same as that of it's controller, and additionally, all interfaces of the
controller are exposed by the aggregated object.
Note that the aggregated object maintains a non-counted reference to the controller.
Aggregated objects should be used when using delegation to implement
reference counted objects: the delegated interfaces can be implemented
safely by TAggregatedObject descendents.
See also
Properties
Controller | public | Controlling instance. |
Methods
QueryInterface | protected | |
_AddRef | protected | |
_Release | protected | |
Create | public | Create a new instance of TAggregatedObject. |
Inherited
From TObject (41)
AfterConstruction BeforeDestruction CheckDisposed ClassInfo ClassName ClassNameIs ClassParent ClassType CleanupInstance DefaultHandler DefaultHandlerStr Destroy Dispatch DispatchStr Disposed DisposeOf Equals FieldAddress Free FreeInstance GetDisposed GetHashCode GetInterface GetInterfaceByStr GetInterfaceEntry GetInterfaceEntryByStr GetInterfaceTable GetInterfaceWeak GetLastCastErrorInfo InheritsFrom InitInstance InstanceSize MethodAddress MethodName newinstance QualifiedClassName SafeCallException StringMessageTable SystemHasExtendedRTTI ToString UnitName
An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.
