FoxPro/Visual FoxPro - aplicacion en 800x600 o mas...

 
Vista:

aplicacion en 800x600 o mas...

Publicado por damisela (32 intervenciones) el 26/02/2002 06:02:39
Tengo una aplicacion con un formulario principal y sin la ventana de fox predeterminada... mi problemita es que esta diseñada para una configuración de 800 x 600 y para mas o menos se ve obviamente feo... como puedo hacer para verificar si una pantalla esta en una determinada resolucion?... o alguna sugerencia respecto a mi problemita?
gracias y besitos :)
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:aplicacion en 800x600 o mas...

Publicado por ROD (184 intervenciones) el 26/02/2002 14:19:58
HOLA COMO ESTAS?
Primero debes reconocer la resolucion actual para eso usa este codigo

DO CASE
CASE SYSMETRIC(1)=640 AND SYSMETRIC(2)=480
*--- Resolución de 640*480
ressis=1
CASE SYSMETRIC(1)=800 AND SYSMETRIC(2)=600
*--- Resolución de 800*600
ressis=2
CASE SYSMETRIC(1)=1024 AND SYSMETRIC(2)=768
*--- Resolución de 1024*768
ressis=3
CASE SYSMETRIC(1)=1280 AND SYSMETRIC(2)=1024
*--- Resolución de 1280*1024
ressis=4
OTHER
MESSAGEBOX("La resolución de su monitor es desconocida"+CHR(13)+"El sistema la actualizara a 800 X 600",64,"")
= CambiaRes(800,600)
ENDCASE
**************************************************************
IF ressis#2
Titulo='Ajustar Resolución de Pantalla'
Texto ="El sistema esta diseñado para ser usado con una resolución de 800 X 600"+CHR(13)+" Debe ajustar la resolución, Desea hacerlo ahora?"
Tipo = 4 + 32 + 256
* 4 = Botones Sí y No
* 32 = Icono del signo de interrogación
* 256 = El segundo botón es el predeterminado
Preg = MESSAGEBOX(Texto,Tipo,Titulo)
DO CASE
CASE Preg=6 && Significa que presiono boton SI
= CambiaRes(800,600)
CASE Preg=7 && Significa que presiono boton NO
ENDCASE

ENDIF
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:aplicacion en 800x600 o mas...

Publicado por ROD (184 intervenciones) el 26/02/2002 14:37:56
Este codigo es parte del anterior, como tu vez es un procedimiento, yo lo puse en programa de inicio, si tienes dudas hasla saber

atte
ROD
*************************************
PROCEDURE CambiaRes
LPARAMETER tnWidth, tnHeight
LOCAL lnWidth, lnHeight, lnModenum, lcDevmode
lnModenum = 0
lcDevmode = REPLICATE(CHR(0), 156)
lnWidth = IIF(EMPTY(tnWidth), 800, tnWidth)
lnHeight = IIF(EMPTY(tnHeight), 600, tnHeight)
DECLARE INTEGER EnumDisplaySettings IN Win32API STRING, INTEGER, STRING @
DECLARE INTEGER ChangeDisplaySettings IN Win32API STRING @, INTEGER
DO WHILE enUmdisplaysettings(.NULL.,lnModenum,@lcDevmode)!=0
lnModenum = lnModenum+1
ENDDO
lcDevmode = STUFF(lcDevmode, 41, 4, loNgtostr(1572864))
lcDevmode = STUFF(lcDevmode, 109, 4, loNgtostr(tnWidth))
lcDevmode = STUFF(lcDevmode, 113, 4, loNgtostr(tnHeight))
chAngedisplaysettings(@lcDevmode,1)
ENDPROC

FUNCTION LongToStr
LPARAMETER lnLongval
LOCAL lnCnt, lcRetstr
lcRetstr = ''
FOR lnCnt = 24 TO 0 STEP -8
lcRetstr = CHR(INT(lnLongval/(2**lnCnt)))+lcRetstr
lnLongval = MOD(lnLongval, (2**lnCnt))
ENDFOR
RETURN lcRetstr
ENDFUNC
******************************
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

CONTINUACION (plicacion en 800x600 o mas...)

Publicado por ROD (184 intervenciones) el 26/02/2002 14:38:20
Este codigo es parte del anterior, como tu vez es un procedimiento, yo lo puse en programa de inicio, si tienes dudas hasla saber

atte
ROD
*************************************
PROCEDURE CambiaRes
LPARAMETER tnWidth, tnHeight
LOCAL lnWidth, lnHeight, lnModenum, lcDevmode
lnModenum = 0
lcDevmode = REPLICATE(CHR(0), 156)
lnWidth = IIF(EMPTY(tnWidth), 800, tnWidth)
lnHeight = IIF(EMPTY(tnHeight), 600, tnHeight)
DECLARE INTEGER EnumDisplaySettings IN Win32API STRING, INTEGER, STRING @
DECLARE INTEGER ChangeDisplaySettings IN Win32API STRING @, INTEGER
DO WHILE enUmdisplaysettings(.NULL.,lnModenum,@lcDevmode)!=0
lnModenum = lnModenum+1
ENDDO
lcDevmode = STUFF(lcDevmode, 41, 4, loNgtostr(1572864))
lcDevmode = STUFF(lcDevmode, 109, 4, loNgtostr(tnWidth))
lcDevmode = STUFF(lcDevmode, 113, 4, loNgtostr(tnHeight))
chAngedisplaysettings(@lcDevmode,1)
ENDPROC

FUNCTION LongToStr
LPARAMETER lnLongval
LOCAL lnCnt, lcRetstr
lcRetstr = ''
FOR lnCnt = 24 TO 0 STEP -8
lcRetstr = CHR(INT(lnLongval/(2**lnCnt)))+lcRetstr
lnLongval = MOD(lnLongval, (2**lnCnt))
ENDFOR
RETURN lcRetstr
ENDFUNC
******************************
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