|
|
|
|
- Diferencias entre las funciones Timer y TimerSys
- Process por llamar al timer
- Operaciones de bloqueo o no bloqueo
- Tiempo de ejecución de Procedure
- Cronómetro y ventanas hermanas
- Timer y Thread
- Temporizador y servicio Windows
Periódica y automáticamente llama a un WLanguage Procedure. En un procedimiento, la función TimerSys permite identificar el temporizador que inició el procedimiento. La secuencia de llamadas periódicas a un Procedure se llama timer. Esta llamada periódica será detenida por EndTimerSys.
// Procedure used to display the time in EDT_Time1 on a regular basis PROCEDURE Display_Time() EDT_Time1 = TimeSys() // Process when opening the window // Display_Time will be called every second IF TimerSys("Display_Time", 100, 1) = 0 THEN Error("Unable to create the timer") END
Sintaxis
Iniciar un Procedure periódicamente Ocultar los detalles
<Result> = TimerSys(<WLanguage procedure> , <Period> [, <Number>])
<Result>: Integer - Número del timer abierto (<Número> si se especificó este parámetro),
- 0 si no se abrió la timer.
<WLanguage procedure>: Procedure name Nombre de WLanguage Procedure que se iniciará periódicamente.Observación: Si este parámetro corresponde al nombre de un Procedure interno, el nombre de Procedure interno no debe estar entre comillas. <Period>: Integer Tiempo (en centésimas de segundo) entre dos llamadas al Procedure por Time r. La precisión del período depende del estado del sistema pendiente. Este parámetro puede corresponder a: - un entero que corresponde al número de centésimas de segundo,
- una variable de tipo Duration,
- la indicación directa de la duración (1 s o 10 ms, por ejemplo).
<Number>: Optional integer Número impuesto a la timer. Si se especifica este parámetro, el número de timer será el número seleccionado. Si este número corresponde a un timer existente, será detenido y reemplazado por el nuevo timer. <Result>: Integer Número del temporizador que llamó al actual Procedure. Observaciones Diferencias entre las funciones Timer y TimerSys - Timer le permite usar un timer administrado por WINDEV o WINDEV Mobile. En este caso, la frecuencia de la llamada se calcula a partir del momento en que se realizó la llamada a la timer.
- La función TimerSys permite utilizar un temporizador gestionado por el sistema. En este caso, la frecuencia de la llamada se calcula a partir del final de la ejecución de Procedure.
Tip: En la mayoría de los casos, utilice TimerSys. De hecho, la función Timer consume más recursos que la función TimerSys y solo funciona cuando se muestran ventanas de WINDEV/WINDEV Mobile (el temporizador se detiene si se muestra un cuadro de mensajes). Process por llamar al timer - Código del proyecto:
- Si la función TimerSys se llama en un código del proyecto, el timer se asocia al proyecto. El timer es interrumpido por EndTimerSys y cuando la ejecución de la aplicación termina. El Procedure llamado por el timer debe ser:
- un Procedure global al proyecto:
TimerSys("<global procedure>", 1000) - un método estático de una clase:
TimerSys("<class>::<static method>", 1000)
- Si la función TimerSys se utiliza en el proceso de apertura del proyecto y no hay ninguna ventana abierta, el timer será válido para todo el proyecto. Se encuentra en estado pendiente y se activará automáticamente en cuanto se abra una ventana o durante las llamadas a Multitask..
- Código de una ventana, control o Procedure local:
Si se llama a la función TimerSys en el código de una ventana, de uno de los controles de la ventana o de un procedimiento local a la ventana, el timer se asocia a la ventana. El timer es interrumpido por EndTimerSys y al cerrar la ventana. El Procedure llamado por el timer debe ser:- una Procedure local de la ventana:
TimerSys("<local procedure>", 1000) - un Procedure global al proyecto:
TimerSys("<global procedure>", 1000) - un método estático de una clase:
TimerSys("<class>::<static method>", 1000)
- Código de un método estático de una clase:
Si se llama a la función TimerSys en un método estático de una clase, el timer se asocia a la clase. El timer es interrumpido por EndTimerSys y cuando la ejecución de la aplicación termina. El Procedure llamado por el timer debe ser:- un método estático de la clase:
TimerSys ("::<static method>", 1000) - un método estático de otra clase:
TimerSys("<class>::<static method>", 1000) - un Procedure global al proyecto:
TimerSys("<global procedure>", 1000)
- Código de un método de objeto:
Si se llama a la función TimerSys en el método de un objeto, el timer se asocia al objeto. La timer es interrumpida por EndTimerSys, al liberar el objeto y al cerrar la ventana. El Procedure llamado por el timer debe ser:- un método no estático del objeto:
TimerSys(":<method>", 1000) - un método estático de la clase de objeto:
TimerSys ("::<static method>", 1000) - un método estático de otra clase:
TimerSys("<class>::<method>", 1000) - un Procedure global al proyecto:
TimerSys("<global procedure>", 1000)
Operaciones de bloqueo o no bloqueo - Un temporizador no se bloquea cuando se abren los menús, cuando se abre una ventana, cuando se abren las ventanas associated con Advertencia, Confirme, Error, Info, OKCancel y YesNo.
- Una timer se cierra cuando las ventanas se mueven o cambian de tamaño.
Tiempo de ejecución de Procedure Si el tiempo usado para Process el Procedure llamado por el timer es mayor que el tiempo solicitado entre cada llamada al Procedure, las llamadas al timer no se acumulan: habrá una sola llamada pendiente.
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|