Refrescar dialogo
Posted: Wed Jun 22, 2011 7:03 pm
Hola amigos del foro
Tengo el siguiente problema:
Un cliente desea conectar un segundo monitor a su PC para que al momento de seleccionar un producto para la venta, en la segunda pantalla se muestre la foto del producto y ciertos detalles del mismo. Para esto, hice un dialogo que muevo con oDlgFOTO:Move(nX,nY) al momento de activar el dialog.
Todo funciona bien, pero he querido brindarle al usuario la posibilidad de ajustar la posicion del dialogo y que dicha posicion quede almacenada para que al abrir de nuevo el sistema el dialogo este en la posicion que el usuario establecio. He buscado la variable en la que se almacena la posicion del dialogo pero no la he encontrado... asi que cree 4 botones (arriba, abajo, izq, der) para que el usuario al pulsarlos se aumente o disminuya el valor de nX y nY. Esto ultimo me funciona bien, lo que no me funciona es que al ir cambiando esas variables, se debe refrescar el dialogo en la pantalla para que se vea el efecto del cambio de posicion, pero lo que se mueve es un recuadro gris y no el dialogo completo.
La pregunta es como hago para 1. saber la coordenada en la que se encuentra el dialogo o 2. refrescar la imagen completa del dialogo al moverlo con los botones y usando en MOVE...
Adjunto codigo
FUNC IMGVIEW()
LOCAL oBTN
DEFINE DIALOG oDlgFOTO RESOURCE "FOTOART"
REDEFINE IMAGE oFOTOART ID 501 OF oDlgFOTO FILE cFOTOART ADJUST
REDEFINE SBUTTON oBtn ID 301 OF oDlgFOTO ACTION (aConfig[97]--,oDlgFOTO:Move(aConfig[97],aConfig[98]),oDlgFOTO:REFRESH(),oWnd:REFRESH()) W97 RESOURCE "B_UP"
REDEFINE SBUTTON oBtn ID 302 OF oDlgFOTO ACTION (aConfig[98]++,oDlgFOTO:Move(aConfig[97],aConfig[98]),oDlgFOTO:REFRESH()) W97 RESOURCE "B_DER"
REDEFINE SBUTTON oBtn ID 303 OF oDlgFOTO ACTION (aConfig[97]++,oDlgFOTO:Move(aConfig[97],aConfig[98]),oDlgFOTO:REFRESH()) W97 RESOURCE "B_DOWN"
REDEFINE SBUTTON oBtn ID 304 OF oDlgFOTO ACTION (aConfig[98]--,oDlgFOTO:Move(aConfig[97],aConfig[98]),oDlgFOTO:REFRESH()) W97 RESOURCE "B_IZQ"
REDEFINE SBUTTON oBtn ID 305 OF oDlgFOTO ACTION (WritePProString( "Local" , 'PosicionX', STR(aConfig[97]),'C:\EVOLUTIO\EVOLUTIO.INI'),WritePProString( "Local" , 'PosicionY', STR(aConfig[98]),'C:\EVOLUTIO\EVOLUTIO.INI') ) W97 RESOURCE "B_YES"
ACTIVATE DIALOG oDlgFOTO NOWAIT ON INIT oDlgFOTO:Move(aConfig[97],aConfig[98]) VALID 1#1
RETU[]
Tengo el siguiente problema:
Un cliente desea conectar un segundo monitor a su PC para que al momento de seleccionar un producto para la venta, en la segunda pantalla se muestre la foto del producto y ciertos detalles del mismo. Para esto, hice un dialogo que muevo con oDlgFOTO:Move(nX,nY) al momento de activar el dialog.
Todo funciona bien, pero he querido brindarle al usuario la posibilidad de ajustar la posicion del dialogo y que dicha posicion quede almacenada para que al abrir de nuevo el sistema el dialogo este en la posicion que el usuario establecio. He buscado la variable en la que se almacena la posicion del dialogo pero no la he encontrado... asi que cree 4 botones (arriba, abajo, izq, der) para que el usuario al pulsarlos se aumente o disminuya el valor de nX y nY. Esto ultimo me funciona bien, lo que no me funciona es que al ir cambiando esas variables, se debe refrescar el dialogo en la pantalla para que se vea el efecto del cambio de posicion, pero lo que se mueve es un recuadro gris y no el dialogo completo.
La pregunta es como hago para 1. saber la coordenada en la que se encuentra el dialogo o 2. refrescar la imagen completa del dialogo al moverlo con los botones y usando en MOVE...
Adjunto codigo
FUNC IMGVIEW()
LOCAL oBTN
DEFINE DIALOG oDlgFOTO RESOURCE "FOTOART"
REDEFINE IMAGE oFOTOART ID 501 OF oDlgFOTO FILE cFOTOART ADJUST
REDEFINE SBUTTON oBtn ID 301 OF oDlgFOTO ACTION (aConfig[97]--,oDlgFOTO:Move(aConfig[97],aConfig[98]),oDlgFOTO:REFRESH(),oWnd:REFRESH()) W97 RESOURCE "B_UP"
REDEFINE SBUTTON oBtn ID 302 OF oDlgFOTO ACTION (aConfig[98]++,oDlgFOTO:Move(aConfig[97],aConfig[98]),oDlgFOTO:REFRESH()) W97 RESOURCE "B_DER"
REDEFINE SBUTTON oBtn ID 303 OF oDlgFOTO ACTION (aConfig[97]++,oDlgFOTO:Move(aConfig[97],aConfig[98]),oDlgFOTO:REFRESH()) W97 RESOURCE "B_DOWN"
REDEFINE SBUTTON oBtn ID 304 OF oDlgFOTO ACTION (aConfig[98]--,oDlgFOTO:Move(aConfig[97],aConfig[98]),oDlgFOTO:REFRESH()) W97 RESOURCE "B_IZQ"
REDEFINE SBUTTON oBtn ID 305 OF oDlgFOTO ACTION (WritePProString( "Local" , 'PosicionX', STR(aConfig[97]),'C:\EVOLUTIO\EVOLUTIO.INI'),WritePProString( "Local" , 'PosicionY', STR(aConfig[98]),'C:\EVOLUTIO\EVOLUTIO.INI') ) W97 RESOURCE "B_YES"
ACTIVATE DIALOG oDlgFOTO NOWAIT ON INIT oDlgFOTO:Move(aConfig[97],aConfig[98]) VALID 1#1
RETU[]