Hola, estoy haciendo una aplicación donde muestra una imagen y algunos datos, lo que me ha detenido es la parte en donde se debe de actualizar la imagen con sus datos, esto se debe hacer después de cierto tiempo (pasado unos 5 minutos); para ello coloqué un TIMER y así poder refrescar la pantalla pero no me funciona, les pido puedan hecharle un vistazo y decirme que me hace falta y/o que hice mal. Se los agradezco. el cod es el sig.:
//////////////
static function muestraimagen(cfoto,cnombre,cpreciopza,cpreciocja)
local lcodigo:=space(15)
local ncant:=0
local oDlgFoto
local sw:=.t.
local oFoto,onombre
local opreciopza:=0,opreciocja:=0
local nwait:=1
local tiempo:=0,cotiempo:=0
local valormaximo:=10
local nseconds:=1
local timemax:=15
local Timer
DEFINE FONT oFont3 NAME "Arial" SIZE 25,65 BOLD
DEFINE FONT oFont2 NAME "Arial" SIZE 45,75 BOLD
DEFINE FONT oFont1 NAME "Arial" SIZE 32,55 BOLD
DEFINE DIALOG oDlgfoto RESOURCE "PHOTOS" OF oDlgFoto title "Muestra la Imagen" from 1,1 to 14,40
REDEFINE SAY onombre VAR cnombre ID 115 OF oDlgfoto UPDATE Font oFont3 color "gr*+/g+"
REDEFINE SAY opreciopza VAR cpreciopza ID 116 OF oDlgfoto UPDATE Font oFont2 color "gr*+/b+"
REDEFINE SAY opreciocja VAR cpreciocja ID 117 OF oDlgfoto UPDATE Font oFont2 color "gr*+/b+"
redefine image oFoto id 100 of oDlgfoto file cfoto update adjust
oFoto:PROGRESS(.f.)
REDEFINE BtnBmp oBtn ID 201 OF oDlgfoto resource "BACEPTA" ACTION (oDlgfoto:end(),sw:=.t.)
// REDEFINE BtnBmp oBtn ID 202 OF oDlgfoto resource "BCANCELA" ACTION (oDlgfoto:end(),sw:=.f.)
DEFINE TIMER cotiempo OF oDlgfoto ;
INTERVAL ( 60000 ) ;
ACTION (tiempo ++, if (tiempo >= 1, (oDlgfoto:END()),)) ; //tiempo:Refresh()
ACTIVATE TIMER cotiempo
// do while nseconds<timemax
// inkey(nwait)
// nseconds+=nwait
// enddo
//keyboard(27)
// ok:= {|| EVAL(odlgFoto:end() )}
ACTIVATE DIALOG oDlgfoto
return nil
como refrescar una imagen despues de cierto tiempo
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Tienes que crear el timer desde la claúsula ON INIT:
ACTIVATE DIALOG oDlgfoto ;
ON INIT CreaTimer( oDlgfoto )
...
function CreaTimer( oDlgfoto )
local cotiempo
DEFINE TIMER cotiempo OF oDlgfoto ;
INTERVAL ( 60000 ) ;
ACTION (tiempo ++, if (tiempo >= 1, (oDlgfoto:END()),)) ; //tiempo:Refresh()
ACTIVATE TIMER cotiempo
return nil
ACTIVATE DIALOG oDlgfoto ;
ON INIT CreaTimer( oDlgfoto )
...
function CreaTimer( oDlgfoto )
local cotiempo
DEFINE TIMER cotiempo OF oDlgfoto ;
INTERVAL ( 60000 ) ;
ACTION (tiempo ++, if (tiempo >= 1, (oDlgfoto:END()),)) ; //tiempo:Refresh()
ACTIVATE TIMER cotiempo
return nil
sigue sin refrescar los datos
Gracias lo he anotado todo tal cual no me marcado ningún error, pero sigue sin refrescar la imagen ni los datos.