Delphi événements CreateOleObject
-
30-09-2019 - |
Question
Il y a un code:
var
myobject: OleVariant;
begin
myobject := CreateOleObject('SomeNamespace.SomeClass');
end;
Cet objet COM a des événements (par exemple OnClick). Comment dois-je me connecter à ces événements sans TLB importer?
La solution
Vous travaillez avec COM-liaison tardive, alors avez-vous besoin écrire beaucoup de code à des événements de poignée. cette tâche n'est pas difficile si vous savez COM, ne Classiquement, vous devez suivre les étapes suivantes.
- Créer un nouvel objet (classe) dérivée de
TInterfacedObject
qui implémenteIDispatch
- mettre en œuvre la fonction
Invoke()
de votre nouvelle classe - Requête pour le conteneur de point de connexion (
IConnectionpointContainer
) et le point de connexion souhaitée. - Coulez le point de connexion en utilisant
IConnectionPointContainer.FindConnectionPoint
- exécuter enfin le
IConnectionPoint.Advise()
en utilisant votre mise en œuvre de leIDispatch
vous pouvez trouver des exemples de cette mise en œuvre sur ces liens
-
Comment utiliser un événement créé à l'aide des objets CreateOleObject -
Delphi 5 en cours d'exécution powerpoint (par exemple à l'aide d'une fin objet de liaison avec les événements) - Delphi 5 en cours d'exécution powerpoint (par exemple en utilisant une liaison tardive objet avec des événements)
essayer ces liens pour plus d'informations sur COM, contraignant fin et les événements
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow