Jeje:
Esa pregunta se la han hecho muchos, y como todo en FiveWin, parece una tontería pero realmente es una estupidez (frase célebre de Paco García).
Un timer "estandar" de Windows no soporta intervalos de tiempo de mas de 1 minuto, ¿ que haces entonces ?, muy facil, en vez de que el ACTION del timer realice una función conviertes el timer en un RELOJ.
¿ Como ?, ¿ te haz perdido del todo ?, bien aqui te va:
DEFINE TIMER oTimer INTERVAL 60000 ACTION SumaMinuto() OF oWnd
Code: Select all
Function SumaMinuto()
STATIC nMinuto := 0
nMinuto ++ // contador de minutos
IF nMinuto > 30 // ha pasado media hora
PongaAquiLaFuncionDelTimer()
nMinuto := 0
ENDIF
RETURN
Asi de facil, en vez de que el ACTION del timer ejecute una acción, convertimos el timer en RELOJ y cada minuto vamos incrementado un contador interno basado en una variable STATIC que nunca pierde su valor dentro de la funcion, una vez cumplido el intervalo de tiempo necesario, entonces ejecutamos la accion que antes estaba definida en el timer.