Einzelnen Beitrag anzeigen

FoxOne

Registriert seit: 24. Mai 2007
Ort: Wien
7 Beiträge
 
#1

OleServer: Kein CoClass-Create, kein ConnectTo?

  Alt 23. Sep 2008, 10:48
Hallo, Delphi Experten!

Ich bin recht neu auf dem Gebiet von COM bzw. ActiveX und hänge nun mit Verständnisproblemen.
Durch 'Import Type Library' habe ich aus einer dll einen tlb-File mit Wrapper erzeugt und nach Vorschrift des Herstellers einen Client erstellt - passt alles.
Nun habe ich auch selbst einen Automation Object geschrieben, das wie auch die dll Events unterstützt. Dabei habe ich folgenden Unterschied bemerkt.

Bei mir sieht die Server-Initialisierung im Client (z.B. im FormCreate) folgendermaßen aus:


Code:
FEventServer : IEventServer;
LocalEventServer : TEventServer;
procedure OnMyEvent(Sender : TObject);
..
..

  FEventServer:=CoEventServer.create;
  LocalEventServer:=TEventServer.create(nil);
  With LocalEventServer do
  begin
    AutoConnect:= False;
    ConnectTo(FEventServer);  
    LocalEventServer.OnServerEvent:=OnMyEvent;
  end;

Bei der dll reicht folgendes:

Code:
..
..
  ExternServer:=TExternServer.create(self);
  ExternServer.OnEvent1:=MYOnEvent1;
Hier wird also nicht das Create der CoClass aufgerufen, und auch das ConnectTo für die Events fehlt (setzte ich Autoconnect auf false und kommentiere ConnectTo aus, bekomme ich bei jedem Event eine Exception). Kann mir jemand den Unterschied erklären bzw. erläutern, wie ich mein Automation Object so hinbringe, dass es gleich verwendbar ist wie die dll?
  Mit Zitat antworten Zitat