FoxPro/Visual FoxPro - tamaño de la pantalla y vfp

   
Vista:

tamaño de la pantalla y vfp

Publicado por Manuel M. (332 intervenciones) el 15/06/2008 02:30:02
K tal amigos del foro;

A ver si me pueden ayudar

Que hacer para que los programas hecho en vfp 9 se ajusten al la configuracion de la pantalla (tamaño) que tenga cualquier equipo.

deben saber que cuando se programa con un tipo de configuracion al mover el programa a otra pc hay que proceder hacer cambios.

Gracias por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:tamaño de la pantalla y vfp

Publicado por ANGEL (100 intervenciones) el 16/06/2008 16:31:47
este es mi prg principal

SET DATE TO [DMY]

SET TALK OFF
SET SAFETY OFF

SET DELETED ON
_SCREEN.VISIBLE=.F.
_SCREEN.Caption=':.CARGANDO APLICACION'
****
Public LANCHO
Public LALTO
****
SET ENGINEBEHAVIOR 70

SET PROCEDURE TO PROGRAMAS/FUNCIONES

**************************************************************
** determina la resolución de la pantalla
**mein del sistema
**************************************************************
****
DO CASE
CASE SYSMETRIC(1)=640 AND SYSMETRIC(2)=480
LANCHO=SYSMETRIC(1)
LALTO=SYSMETRIC(2)
CASE SYSMETRIC(1)=800 AND SYSMETRIC(2)=600
LANCHO=SYSMETRIC(1)
LALTO=SYSMETRIC(2)
CASE SYSMETRIC(1)=1024 AND SYSMETRIC(2)=768
LANCHO=SYSMETRIC(1)
LALTO=SYSMETRIC(2)
CASE SYSMETRIC(1)=1280 AND SYSMETRIC(2)=1024
LANCHO=SYSMETRIC(1)
LALTO=SYSMETRIC(2)
OTHERWISE
LANCHO=SYSMETRIC(1)
LALTO=SYSMETRIC(2)
ENDCASE
IF LANCHO<1024 OR LALTO<768
ChangeRes(1024,768)

ENDIF

*-************************************************************************************
y esta es la funcion q llama para cambiar la resolucion

FUNCTION ChangeRes
LPARAMETERS tnWidth, tnHeight
LOCAL lnWidth, lnHeight, lnModeNum, lcDevMode
*!* Valores
lnModeNum = 0
lcDevMode = REPLICATE(CHR(0), 156)
lnWidth = IIF(EMPTY(tnWidth), 800, tnWidth)
lnHeight = IIF(EMPTY(tnHeight), 600, tnHeight)
*!* Instrucciones DECLARE DLL para cambiar resolución
DECLARE INTEGER EnumDisplaySettings IN Win32API STRING lpszDeviceName, INTEGER iModeNum, STRING @lpDevMode
DECLARE INTEGER ChangeDisplaySettings IN Win32API STRING @lpDevMode , INTEGER dwFlags
*!* Bucle para obtener todos los modos disponibles
DO WHILE EnumDisplaySettings(NULL, lnModeNum, @lcDevMode) <> 0
lnModeNum = lnModeNum +1
ENDDO
*!* Configurar la structura DevMode
lcDevMode = STUFF(lcDevMode, 41, 4, LongToStr(1572864))
lcDevMode = STUFF(lcDevMode, 109, 4, LongToStr(tnWidth)) && Ancho
lcDevMode = STUFF(lcDevMode, 113, 4, LongToStr(tnHeight)) && Alto
*!* Cambiar resolucion
ChangeDisplaySettings(@lcDevMode, 1)
ENDFUNC

FUNCTION LongToStr
LPARAMETERS lnLongVal
LOCAL lnCnt, lcRetStr
lcRetStr = ''
FOR lnCnt = 24 TO 0 STEP -8
lcRetStr = CHR(INT(lnLongVal/(2^lnCnt))) + lcRetStr
lnLongVal = MOD(lnLongVal, (2^lnCnt))
NEXT
RETURN lcRetStr
ENDFUNC


tavez ayuda en algo... lo q yo hago con esto es q si mi aplicacion esta dise;ana para 1024 al inicio la cambio, y cuando cierran vuelvo a poner la q tenian...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:tamaño de la pantalla y vfp

Publicado por Daniel publicador@gmail.com (1 intervención) el 01/09/2015 14:21:10
Probé este código en varias máquinas y funciona perfecto. Lo uso en pantallas públicas que muestran información a los alumnos de una facultad sobre horarios y aulas de cursado que se actualizan permanentemente, y el tema de la resolución correcta es clave. ¡Muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:tamaño de la pantalla y vfp

Publicado por carlos (1 intervención) el 15/05/2016 23:53:26
gracias
buen aporte
una pregunta la funciones lo puedo poner en un prg
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:tamaño de la pantalla y vfp

Publicado por Eduardo Ureña (16 intervenciones) el 18/05/2016 02:19:58
No entiendo el DO CASE - ENDCASE


Sin importar la condición, siempre se iguala LANCHO=SYSMETRIC(1) y LALTO=SYSMETRIC(2). ¿Para qué la estructura? De hecho, si no se cumple ninguna de las anteriores (que son exactamente iguales), se aplica la misma receta.

Saludos

Eduardo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar