PDA

Ver la Versión Completa : Resolucion de pantalla


hermes_32
13-10-2003, 17:22:47
Hola a todos. Yo tengo una funcion para cambiar la resolucion de la pantalla que me funciona siempre. Bien es que no he probado a pasarle una resolucion de pantalla rara pero si me funciona para cambiar a 800x600 y 1024x768 que es lo que yo utilizo. Bueno me dejo de pamplinas y voy a lo que interesa por aqui.

Antes de cambiar de resolucion de pantalla me guardo en 2 variables los valores de la resolucion inicial para cuando cierre la aplicacion dejar la resolucion que habia.

uses Windows;

var Ywindow : Integer;
Xwindow : Integer;

esto seria:
Xwindow := GetSystemMetrics(0);
Ywindow := GetSystemMetrics(1);
If (Xwindow <> 800) Or (Ywindow <> 600) Then CambiaResolucion(800, 600);


procedure CambiaResolucion(Alto, Ancho : Integer);
var a : Boolean;
I : LongInt;
b : Double;
DevChg : TDeviceModeA;
begin
I := 0;
a := True;
while (a = True) do
begin
inc(I);
a := EnumDisplaySettings(nil, I, DevChg);
end;
DevChg.dmFields := DM_PELSWIDTH Or DM_PELSHEIGHT;
DevChg.dmPelsWidth := Alto;
DevChg.dmPelsHeight := Ancho;
b := ChangeDisplaySettings(DevChg, 0);
End;


Os repito que a mi me funciona bien. Intentadlo. Espero que os ayude.

torito
14-10-2003, 19:43:31
Esta excelente... lo voy a probar ya que me hace mucha falta... gracias

acrophet
16-10-2003, 11:25:40
Hola, he probado la funcioncita esta y la verdad es que va de maravilla. Solo tengo una pequeña pega, que al cambiar de resolucion, me desaparece la barra d inicio.
Sabeis a que es debido, o como puedo hacer para que sea visible?
Un saludo.

hermes_32
18-10-2003, 15:28:03
La verdad es que tienes razón pero...oye...no se lo que puede pasar. Si lo descubro no tengas duda que lo pondre aqui.
Un saludo.

bulc
13-06-2015, 19:47:41
He probado el código que se sugiere y me encuentro un error en la línea:

a := EnumDisplaySettings(nil, I, DevChg);

He puesto en OnCreate:

Xwindow := GetSystemMetrics(0);
Ywindow := GetSystemMetrics(1);
If (Xwindow <> 800) Or (Ywindow <> 600) Then CambiaResolucion(800, 600);

¿Alguien sabe cómo reconducirlo?
Saludos.
bulc

Casimiro Notevi
13-06-2015, 23:18:00
He probado el código que se sugiere y me encuentro un error en la línea:
Desde aquí no vemos el error que te sale ;)