|
|
|
|
|
- Vocabulario
- ¿Cómo usar un delegado de.Net con WINDEV?
- Cómo Process los eventos .NET
- Consejo
- Varios
Inicializa un delegado.NET. Este delegado permitirá a .NET devolver la llamada a una Procedure WLanguage o método en caso de eventos o "callbacks". clOwn is OwnEvent clOwn:add_MyEvent(DotNetDelegate("MyHandler", "EventHandler<MyEventArgument>")) clOwn:Trigger("Hello")
PROCÉDURE MyHandler(src, args) Trace(args:Message)
Sintaxis
<Result> = DotNetDelegate(<WLanguage procedure> , <Type of Delegate>)
<Result>: Objeto .NET Net del tipo de participante. <WLanguage procedure>: Nombre de Procedure Nombre del WLanguage Procedure o método para llamar. Este procedimiento tiene el siguiente formato:
PROCEDURE <Procedure Name>(Src, Args) donde: - Src corresponde al objeto .NET que envía el Event
- Args corresponde al objeto .NET utilizado como parámetro del Event .
<Type of Delegate>: Cadena de caracteres Nombre de la clase del delegado a crear. Este parámetro no debe corresponder a una Variable. Observaciones - Delegar: Se utiliza para gestionar una devolución de llamada. Es un tipo de "función. Define el prototipo de la función. El delegado se inicializa con una función.NET correspondiente al prototipo. El delegado es el equivalente.NET del puntero de función en C. Varios métodos pueden ser associated a un mismo delegado: todos ellos se llamarán.
Atención: en la documentación.NET, este término también puede designar los "métodos delegados", es decir, los métodos associated con un delegado. - Manipulador: Tipo particular de delegado diseñado específicamente para el procesamiento de eventos.
- Evento: Un Event puede ser associated con uno o más manejadores. Cuando se activa el Event, se llama a todos los manipuladores asociados con este Event.
¿Cómo usar un delegado de.Net con WINDEV? Para utilizar un delegado de .Net, usted debe: - Encuentre el delegado en la lista de clases.NET
El delegado es una clase.NET en sí misma. El nombre del delegado debe ser conocido (ver la documentación de su ensamblaje.NET). - Definir los parámetros del participante
El delegado define un método de invocación. El WLanguage Procedure associated con el delegado debe tener los mismos parámetros. - Asociar el WLanguage Procedure con el delegado
El delegado se utiliza en una clase.NET. Esta clase posee métodos utilizados para añadir o eliminar un "método delegado" al/del delegado. Consulte la documentación sobre su ensamblaje.NET para conocer los nombres de estos métodos.
Ejemplo: - Nombre de la clase que utiliza el delegado : CUseDelegate
- Nombre de la clase del delegado: CUseDelegate.CpfMyDelegate
- Prototipo del método Invoke de la clase CUseDelegate.CpfMyDelegate : Invocar (entero)
- Prototipo del método WLanguage correspondiente: Procedure MyCallbackWL(local i is int)
clUse is CUseDelegate
clUse:AddDelegate(DotNetDelegate("MyWLCallback", "CUseDelegate.CpfMyDelegate"))
clUse:UseDelegate()
Cómo Process los eventos .NET Para Process los eventos de .Net, debes: 1. Encontrar el evento. El Event es miembro de una clase de .NET. Este miembro tiene un nombre y un tipo. El tipo define el tipo de gestor que se puede asociar a la Event. El nombre se usa para encontrar dos métodos: Estos dos métodos se utilizan para asociar y disociar uno o varios manipuladores con/de un Event. El tipo de parámetro para estos dos métodos es el nombre del tipo de manejador. Ejemplo: La clase OwnEvent contiene un evento MyEvent de tipo EventHandler<MyEventArgument>. 2. Obtener un controlador. Se puede recuperar un controlador con DotNetDelegate: - El primer parámetro es el nombre del WLanguage Procedure
- El segundo parámetro es el nombre de la clase del tipo de handler. Este nombre puede recuperarse mediante el nombre del tipo de los parámetros de los métodos "add_xxx" y "remove_xxx".
Ejemplo: El WLanguage Procedure tiene el siguiente formato: PROCÉDURE MyHandler(src, args) Trace(args:Message)
src es un objeto.NET de tipo OwnEvent, args es un objeto.NET de tipo MyEventArgument 3. Asociar el controlador al evento Para asociar el manipulador a la Event, basta con llamar al método "add_ en el objeto propietario de la Event". Ejemplo: clOwn:add_MyEvent(DotNetDelegate("MyHandler", "EventHandler<MyEventArgument>"))
4. Desencadenar el evento En nuestro ejemplo, la llamada a clOwn:Trigger desencadena el Event. Consejo En el WLanguage Procedure, puedes: - utilizar los métodos asociados a los parámetros de la Procedure. Sin embargo, la finalización no está disponible.
- definir un objeto dinámico y asignarle el parámetro deseado. La terminación está disponible para el objeto.
Estos dos métodos se utilizan en el ejemplo detallado. Varios - Esta función no se puede utilizar en la compilación dinámica.
- El lenguaje WLanguage Procedure se ejecuta en un thread secundario . En cada llamada, el modo HFSQL utilizado es una copy ligera del contexto HFSQL. El contexto se destruye una vez ejecutada la Procedure.
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|