Con esto puedes saber la resolución y cambiarla, adaptalo a tus necesidades
En este código se mira si es 800, 660 en cuyo caso se sube a 1024, 768 y después al terminar se deja como estaba
No se lo que ocurre si la tarjeta no soporta la resolución nueva, prueba tu mismo.
Código Delphi
[-]
end;
var
FMenu: TFMenu;
W, H : integer; spCambioResolucion: string;
implementation
Uses UDM;
{$R *.dfm}
function NuevaRes(XRes, YRes: DWord): Integer;
var
lpDevMode : TDeviceMode;
begin
EnumDisplaySettings (nil, 0, lpDevMode);
lpDevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
lpDevMode.dmPelsWidth := XRes;
lpDevMode.dmPelsHeight := YRes;
NuevaRes := ChangeDisplaySettings (lpDevMode, 0)
end;
En OnCreate para cambiarla
Código Delphi
[-]
procedure TFMenu.FormCreate(Sender: TObject);
begin
W := Screen.Width;
H := Screen.Height;
spCambioResolucion := 'No';
if (W = 800) and (H = 600) then
begin
NuevaRes(1024, 768);
spCambioResolucion := 'Si';
end;
end;
En OnClose para dejarlo como estaba
Código Delphi
[-]
procedure TFMenu.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if spCambioResolucion = 'Si' then
NuevaRes(800, 600);
end;