AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Comunicación / Funciones .Net
  • Vocabulario
  • ¿Cómo usar un delegado de.Net con WINDEV?
  • Consejo
  • Notas adicionales
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 App
Otros
Procedimientos almacenados
DotNetDelegate (Función)
Inicializa un delegado.NET. Este delegado permitirá a .NET llamar de nuevo a un WLanguage Procedure o método en caso de eventos o "callbacks".
Ejemplo
clOwn is OwnEvent
clOwn:add_MyEvent(DotNetDelegate("MyHandler", "EventHandler<MyEventArgument>"))
clOwn:Trigger("Hello")
PROCÉDURE MyHandler(src, args)
Trace(args:Message)
Sintaxis
<Result> = DotNetDelegados(<WLanguage procedure> , <Type of Delegate>)
<Result>: .NET object
Net del tipo de participante.
<WLanguage procedure>: Procedure name
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>: Character string (with quotes)
Nombre de la clase del delegado a crear. Este parámetro no debe corresponder a un Variable.
Observaciones

Vocabulario

  • Delegate: Se utiliza para gestionar una devolución de llamada. Es del tipo "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 al mismo delegado : todos ellos se llamarán.
    Atención : en la documentación .NET, este término también puede designar los "métodos de los delegados", es decir, los métodos associated con un delegado.
  • manipulador: Tipo particular de delegado diseñado específicamente para el procesamiento de eventos.
  • Event: 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:
  1. 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).
  2. 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.
  3. Asociar el WLanguage Procedure con el delegado
    El delegado se utiliza en una clase.NET. Esta clase posee métodos usados para agregar o quitar un "método de delegado" a/desde el 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)
    // Instantiate a class that owns a delegate
    clUse is CUseDelegate

    // Add a "delegate method" (WL callback) to the delegate
    clUse:AddDelegate(DotNetDelegate("MyWLCallback", ...
    "CUseDelegate.CpfMyDelegate"))

    // Provoke the use of the delegate by the .NET class
    clUse:UseDelegate()

Consejo

En el WLanguage Procedure, puedes:
  • use los métodos asociados con los parámetros del Procedure. Sin embargo, la finalización no está disponible.
  • definir un objeto dinámico y asignarle el parámetro solicitado. La terminación está disponible para el objeto.
Estos dos métodos se utilizan en el ejemplo detallado.

Notas adicionales

Esta función no se puede utilizar en la compilación dinámica.
Componente: wd270vm.dll
Ver también
Versión mínima requerida
  • Versión 12
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 09/09/2023

Señalar un error o enviar una sugerencia | Ayuda local