como refrescar una imagen despues de cierto tiempo

Post Reply
cezar
Posts: 4
Joined: Wed Mar 26, 2008 4:30 pm
Contact:

como refrescar una imagen despues de cierto tiempo

Post by cezar »

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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

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
regards, saludos

Antonio Linares
www.fivetechsoft.com
cezar
Posts: 4
Joined: Wed Mar 26, 2008 4:30 pm
Contact:

sigue sin refrescar los datos

Post by cezar »

Gracias lo he anotado todo tal cual no me marcado ningún error, pero sigue sin refrescar la imagen ni los datos.
cezar
Posts: 4
Joined: Wed Mar 26, 2008 4:30 pm
Contact:

Post by cezar »

al momento de ejecutar la aplicación me marca el sig. error:

Error description: Error FiveWin/3 Cannot create Dialog Box:
Resource: PHOTOS

La linea donde me marca el error es:
ON INIT CreaTimer(oDlgfoto)

cual será la causa del error?, gracias
cezar
Posts: 4
Joined: Wed Mar 26, 2008 4:30 pm
Contact:

Post by cezar »

Lo mas raro es que si abro el PHOTO.DLL con WorkShop y lo guardo manteniendo abierto sólo el workshop me permite ejecutar el programa, pero no se ejecuta el TIMER. Si cierro por completo el workshop me marca el error que anote anteriormente.
¿A que se debe esto?
Post Reply