|
Cambiando la resolución de la pantalla programáticamente
Copyright © 2000 Ernesto
De Spirito
ChangeDisplaySettings
Para cambiar la resolución de la pantalla puede usar la siguiente función que
envuelve la función API de Windows ChangeDisplaySettings. La función
toma el ancho y altura deseados como parámetros y devuelve el valor de
retorno de ChangeDisplaySettings (vea la documentación para
más detalles).
uses Windows;
function SetScreenResolution(Ancho, Altura: integer): Longint;
var
DeviceMode: TDeviceMode;
begin
with DeviceMode do begin
dmSize := SizeOf(TDeviceMode);
dmPelsWidth := Ancho;
dmPelsHeight := Altura;
dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
end;
Result := ChangeDisplaySettings(DeviceMode, CDS_UPDATEREGISTRY);
end;
Puede usar ChangeDisplaySettings para cambiar otras propiedades
de la pantalla como la profundidad color y la tasa de refresco.
Llamada de ejemplo
En el siguiente ejemplo primero obtenemos la resolución actual antes de
establecerla en 800x600, y luego la restauramos llamando nuevamente
a SetScreenResolution.
var
AnchoViejo, AlturaVieja: integer;
procedure TForm1.Button1Click(Sender: TObject);
begin
AnchoViejo := GetSystemMetrics(SM_CXSCREEN);
AlturaVieja := GetSystemMetrics(SM_CYSCREEN);
SetScreenResolution(800, 600);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SetScreenResolution(AnchoViejo, AlturaVieja);
end;
|