Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by shmia,
7. Sep 2007
Das Prinzip geht so:
Dein (Server-)Objekt registriert sich selbst in der ROT im RegisterActiveObject() und bekommt bei Erfolg
ein Cookie zurück. Das Cookie wird in eine privaten Variable gespeichert.
Im Destruktor wird RevokeActiveObject() aufgrufen und das Cookie mitgegeben.
Der Client ruft GetActiveOleObject() um das Objekt aus der ROT zu erhalten.
Falls das nicht klappt wird mit...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by shmia,
31. Mai 2005
Das ist soweit alles richtig. :thumb:
Optional könnte man die Collection erst bei 1. Aufruf von GetMyCollection erzeugt und befüllen; muss man aber nicht.
Wichtig ist auch, dass die Variable FSetupData ein Interfacepointer ist, da nur so die Referenzzählung richtig funkt.
FSetupData : TMycollection; // Falsch, kein Interfacepointer
FSetupData : IMyCollection; // Richtig
Das...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by shmia,
31. Mai 2005
Du musst die Collection in einer Variablen zwischenspeichern.
Also angenommen, dein Haupt- oder Einstiegsinterface sieht so aus:
IApplication = interface(IDispatch)
function GetMyCollection:IMyCollection;safecall;
end;
Dann sieht die Implementierung ungefähr so aus:
T_Application = class(TAutoObject, IConnectionPointContainer, IApplication)
private
FMyCollection :...