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.
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.