Delphi eventos CreateOleObject
-
30-09-2019 - |
Pregunta
Hay un código:
var
myobject: OleVariant;
begin
myobject := CreateOleObject('SomeNamespace.SomeClass');
end;
Este objeto COM tiene eventos (por ejemplo OnClick). ¿Cómo debería conectarse a estos eventos, sin importar TLB?
Solución
Se está trabajando con COM enlace tardío, así que ¿Necesita escribir mucho código a los eventos de la manija. esta tarea no es difícil si usted sabe COM, básicamente ¿Necesita seguir estos pasos.
- Crea un nuevo objeto (clase) derivado de
TInterfacedObject
que implementosIDispatch
- implementar la función
Invoke()
de la nueva clase - consulta para el recipiente de punto de conexión (
IConnectionpointContainer
) y el punto de conexión deseado. - hundir el punto de conexión usando
IConnectionPointContainer.FindConnectionPoint
-
IConnectionPoint.Advise()
usando su aplicación de laIDispatch
Puede encontrado ejemplos de esta implementación en estos enlaces
-
Cómo utilizar un evento creado usando objetos CreateOleObject -
Delphi 5 ejecutando PowerPoint (ejemplo usando una tarde objetos con eventos) que se une - Delphi 5 ejecutando PowerPoint (ejemplo usando un enlace tardío objeto con eventos)
probar estos enlaces para obtener más información acerca de COM, enlace tardío y los acontecimientos
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow