Timer

Librerías finalizadas programadas por usuarios entusiastas

Timer

Notapor PowerDeath » Mié Ago 06, 2014 10:43 am

Esta libreria permite crear un Timer estilo vb6, he visto que en Visual pauscal se puede crear timers, pero no se utilizarlos el codigo plano asi que decidi crear esta libreria.

Código: Seleccionar todo
Privado:
Var h_Timer_h:Entero
Var b_Timer_p:Entero
Proc CreateTimerQueue():Entero, "Kernel32.dll"
Proc CreateTimerQueueTimer(Referencia phNewTimer:Entero,TimerQueue:Entero,Callback:Entero,Parameter:Entero,DueTime:Entero,Period:Entero,Flags:Entero):Entero,"Kernel32.dll"
Proc DeleteTimerQueue(TimerQueue:Entero):Booleano,"Kernel32.dll"
Proc DeleteTimerQueueTimer(TimerQueue,Timer,CompletionEvent:Entero):Entero,"Kernel32.dll"
Público:

Const WT_EXECUTEDEFAULT = &00000000
Const WT_EXECUTEINTIMERTHREAD = &00000020
Const WT_EXECUTEINIOTHREAD = &00000001
Const WT_EXECUTEINPERSISTENTTHREAD = &00000080
Const WT_EXECUTELONGFUNCTION = &00000010
Const WT_EXECUTEONLYONCE = &00000008
Const WT_TRANSFER_IMPERSONATION = &00000100

Proc TimerCrear():Entero
Resultado = CreateTimerQueue()
h_Timer_h = Resultado
FinProc

Proc TimerComenzar(Procedimiento,Tiempo,Lapso:Entero,Opcional Bandera:Entero = WT_EXECUTEDEFAULT,Opcional Puntero:Entero):Entero
CreateTimerQueueTimer(b_Timer_p,>Puntero?Puntero:h_Timer_h,Procedimiento,0,Tiempo,Lapso,Bandera)
Devolver b_Timer_p
FinProc

Proc TimerDetener(Opcional Puntero_a,Puntero:Entero):Entero
Devolver DeleteTimerQueueTimer(>Puntero_a?Puntero_a:h_Timer_h,>Puntero?Puntero:b_Timer_p,0)
FinProc

Proc TimerDestruir(Opcional Puntero:Entero):Booleano
Devolver DeleteTimerQueue(>Puntero?Puntero:h_Timer_h)
FinProc


TimerComenzar necesita el puntero al procedimiento que se puede obtener simplemente escribiendo el arroba en frente del nombre del procedimiento.

Ejemplo de codigo:
Código: Seleccionar todo
Importar "Timer.prp"
Importar "Utiles.prp"

Var i:Entero

Proc A
Mensaje("A")
FinProc


TimerCrear

TimerComenzar(A@,0,1000) ' al establecer 0 En el segundo parametro, decimos que el timer se ejecutara durante un tiempo indefinido.

Contar i = 0 a 10000
Pausar(1000)
Si i = 3 Entonces TimerDestruir
Seguir
Imagen
PowerDeath
 
Mensajes: 160
Registrado: Sab Ago 11, 2012 5:29 am

Sponsor


Volver a Librerias

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron