como refrescar una imagen despues de cierto tiempo

como refrescar una imagen despues de cierto tiempo

Postby cezar » Wed Mar 26, 2008 8:21 pm

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
cezar
 
Posts: 4
Joined: Wed Mar 26, 2008 4:30 pm

Postby Antonio Linares » Wed Mar 26, 2008 9:10 pm

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

sigue sin refrescar los datos

Postby cezar » Wed Mar 26, 2008 10:16 pm

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

Postby cezar » Thu Mar 27, 2008 3:30 pm

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

Postby cezar » Thu Mar 27, 2008 3:38 pm

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?
cezar
 
Posts: 4
Joined: Wed Mar 26, 2008 4:30 pm


Return to FiveWin para CA-Clipper

Who is online

Users browsing this forum: No registered users and 20 guests