FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para CA-Clipper como refrescar una imagen despues de cierto tiempo
Posts: 4
Joined: Wed Mar 26, 2008 04:30 PM
como refrescar una imagen despues de cierto tiempo
Posted: Wed Mar 26, 2008 08: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

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
como refrescar una imagen despues de cierto tiempo
Posted: Wed Mar 26, 2008 09: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
Posts: 4
Joined: Wed Mar 26, 2008 04:30 PM
sigue sin refrescar los datos
Posted: 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.

Posts: 4
Joined: Wed Mar 26, 2008 04:30 PM
como refrescar una imagen despues de cierto tiempo
Posted: Thu Mar 27, 2008 03: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

Posts: 4
Joined: Wed Mar 26, 2008 04:30 PM
como refrescar una imagen despues de cierto tiempo
Posted: Thu Mar 27, 2008 03: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?

Continue the discussion