Page 1 of 1
Refrescar imagen
Posted: Tue Sep 18, 2007 2:14 pm
by jrestojeda
Hola a todos
Estoy cargando una imagen en un dialogo creado con workshop pero cuando cambio el archivo no se actualiza.
Alguien sabe porque puede ser?
Lo estoy haciendo así.
REDEFINE BITMAP oBmp ID 100 OF oDlg FILE Archivo ADJUST UPDATE
...
La variable Archivo la cargo con la funcion con un boton en el dialogo donde redefino el bmp.
Function SelFile(oBmp,Archivo)
Archivo:= cGetFile32("BMP | *.bmp","Seleccione un archivo",1,,,.T.)
oBmp:Refresh()
Return nil
//
Si yo grabo el Path del archivo cierro el dialogo y lo vuelvo a abrir se ve la imagen cargada.
Posted: Tue Sep 18, 2007 2:55 pm
by Carlos Mora
No es suficiente con el refresh del bitmap, ni se va a enterar automaticamente de que Archivo tenga otro valor.
Antes del refresh llama a SetBMP( Archivo ) o Reload(, Archivo )
Carlos
Posted: Tue Sep 18, 2007 3:54 pm
by jrestojeda
Carlos gracias por tu ayuda
Lo probé asi
Function SelFile(oBmp,Archivo)
Archivo:= cGetFile32("BMP | *.bmp","Seleccione un archivo",1,,,.T.)
oBmp:SetBMP( Archivo ) // Solo este una vez
oBmp:Reload( , Archivo ) // Solo este una vez
oBmp:Refresh()
Return nil
También probé con ambos al mismo tiempo y no ha funcionado.
Porque puede ser?
Desde ya muchas gracias.
Posted: Tue Sep 18, 2007 4:52 pm
by MOISES
Añade oDlg:Update()
y en el redefine bitmap UPDATE
Posted: Tue Sep 18, 2007 5:52 pm
by jrestojeda
Gracias Moises
Probé lo que me recomendaste pero sigue sin funcionar.
Saludos.
Posted: Tue Sep 18, 2007 6:14 pm
by AOKISANTOS
readbimap(0,"caminho")
Posted: Tue Sep 18, 2007 6:43 pm
by Armando
Ojeda:
Mira qué es lo que te devuelve la función cGetFile32(), posiblemente sea problema de rutas o nombres largos.
MsgInfo(Archivo)
Saludos
Posted: Tue Sep 18, 2007 7:38 pm
by jrestojeda
Gracias a todos por su ayuda.
Ya logré solucionar el problema de la siguiente manera
Code: Select all
Function SelFile(oBmp,Foto,oDlg1)
Foto:= cGetFile32("BMP | *.bmp","Seleccione un archivo",1,,,.T.)
oBmp:SetBMP("",Foto)
oBmp:Reload("",Foto)
oBmp:Refresh()
oDlg1:Update()
oDlg1:Refresh()
Return nil
//
y en el dialogo redefino el get de la siguiente forma:
Code: Select all
REDEFINE BITMAP oBmp ID 106 OF oDlg1 FILE Foto ADJUST UPDATE
REDEFINE BTNBMP Btn1 ID 107 OF oDlg1 RESOURCE "FLOPPY" LEFT;
ACTION SelFile(oBmp,@Foto,oDlg1)
y funciona perfectamente. La imagen se refresca en el momento.
Gracias a todos.