Thursday, August 31, 2006

Pokud budete chtít pouze otestovat,

zda je dané rozlišení v systému dostupné (bez samotné změny), nastavte jako druhý parametr funkce ChangeDisplaySettings hodnotu CDS_TEST (v naší ukázce je parametrem 0, která právě zajistí rovnou změnu rozlišení). Další možností je parametr CDS_UPDATEREGISTRY, který zajistí též uložení nastavení do registru, takže bude platné i po restartu.
function ZmenaRozliseni(Width, Height, Bit: integer): integer;
var
DvMode : TDeviceMode;
begin
DvMode.dmSize := SizeOf(TDeviceMode);
DvMode.dmPelsWidth := Width;
DvMode.dmPelsHeight := Height;
DvMode.dmBitsPerPel := Bit;
DvMode.dmFields := DM_PELSWIDTH + DM_PELSHEIGHT + DM_BITSPERPEL;
case ChangeDisplaySettings(DvMode, 0) of
DISP_CHANGE_SUCCESSFUL: Result := 1;
DISP_CHANGE_RESTART: Result := 2;
else Result := 3;
end;
end;