Wie soll ich den das in einer anderen
Unit machen? Aus einer anderen
Unit komme ich doch nicht an die Klasse ran!
Ganz einfach!
Delphi-Quellcode:
unit MyInterfaces;
interface
const
SID_Sample :
string = '
{13B2116B-B78B-4E89-8070-83F9E36720EF}';
SID_OtherSample :
string = '
{74EF1A68-1EED-4DA4-9845-5F77AEB6D2DA}';
type
ISample =
interface(IUnknown)
[SID_Sample]
procedure Foo;
function Bar : Boolean;
end;
IOtherSample =
interface(IUnknown)
[SID_OtherSample]
procedure FooFoo;
function BarHocker : Boolean;
end;
implementation
end.
Den Spaß werden wir hier implementieren:
Delphi-Quellcode:
unit MyClasses;
interface
uses
MyInterfaces;
type
TMySampleClass =
class(TInterfacedObject, ISample)
private
function Bar: Boolean;
procedure Foo;
end;
TMyOtherSampleClass =
class(TMySampleClass, IOtherSample)
private
function BarHocker: Boolean;
procedure FooFoo;
end;
implementation
{blablabla - Methoden über Methoden}
end.
Die
Unit Container ist ja jedem hier bekannt; so melden wir alle schön an:
Delphi-Quellcode:
unit RegisterMyClasses;
interface
implementation
uses
Container, MyInterfaces, MyClasses;
initialization
Container.GlobalContainer.RegisterClass<ISample, TMySampleClass>;
Container.GlobalContainer.RegisterClass<IOtherSample, TMyOtherSampleClass>;
end.
Tataaaa!