Goosfancito;
A ver si mi sample te ayuda:
METHOD SetTimer( oBtn, nOpcion, nTmrOff ) CLASS TDbf2FTP
static nMaxTmr
local oSelf:= Self, ;
oTimer, ;
cCaption:= BeforAtNum( "...", oBtn:cCaption )
DEFAULT nMaxTmr:= nTmrOff // Le paso el nro de segundos que quiero que muestre algo
DEFINE TIMER oTimer OF soDlg INTERVAL nMaxTmr*200 ;
ACTION if( nMaxTmr >= 1, ( oBtn:SetText( cCaption+"..."+Str(nMaxTmr,1) ), --nMaxTmr ), ;
( nMaxTmr:= nTmrOff, oTimer:End(), ; // Cuando es igual a 0, reasigno nMaxTmr y doy :End()
if( nOpcion==_DESCOMP, soWnd0:End(), soDlg:PostMsg( WM_KEYDOWN, VK_ESCAPE, 0 ) ) ) )
ACTIVATE TIMER oTimer
return( nil )
Esto lo que hace es poner en un Boton el texto "Salir...3", "Salir...3", etc.
Como verás al llegar a o desactivo el Timer. Para activarlo, vuelvo a llamar el metodo SetTimer()
Saludos