Форум: "Игры";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
ВнизВорпос на засыпку.... Найти похожие ветки
← →
Werwolf © (2004-05-11 00:30) [0]Вопрос как ни странно короткий: как поменять с помощью делфи разрешение экрана. допустим с 640*480 на 1024*768
← →
Mihey © (2004-05-11 00:49) [1]Ну явно из FAQ:
{
The function NewRes can have the following result:
DISP_CHANGE_SUCCESSFUL The settings change was successful.
DISP_CHANGE_RESTART The computer must be restarted in order for the graphics mode to work.
DISP_CHANGE_BADFLAGS An invalid set of flags was passed in.
DISP_CHANGE_FAILED The display driver failed the specified graphics mode.
DISP_CHANGE_BADMODE The graphics mode is not supported.
DISP_CHANGE_NOTUPDATED Windows NT only: Unable to write settings to the registry.
}
{
Folgene Rьckgabewerte sind fьr NewRes mцglich:
DISP_CHANGE_SUCCESSFUL Auflцsung geдndert
DISP_CHANGE_RESTART Computer muss neugestartet werden
DISP_CHANGE_BADFLAGS Falsche Flags
DISP_CHANGE_FAILED Fehler in Grafiktreiber
DISP_CHANGE_BADMODE Auflцsung nicht unterstьtzt
DISP_CHANGE_NOTUPDATED Windows NT: Einstellungen konnten nicht in die Registry geschrieben werden
}
function NewRes(XRes, YRes: DWORD; Frequency: Cardinal): Integer;
var
DevMode: TDeviceMode;
begin
EnumDisplaySettings(nil, 0, DevMode);
DevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT or DM_DISPLAYFREQUENCY;
DevMode.dmPelsWidth := XRes;
DevMode.dmPelsHeight := YRes;
DevMode.dmDisplayFrequency := Frequency;
Result := ChangeDisplaySettings(DevMode, 0);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if NewRes(1280, 1024, 85) = DISP_CHANGE_SUCCESSFUL then
ShowMessage("Resolution changed!");
end
//Another function:
function ChangeResolution(XResolution, YResolution, Depth: DWORD): BOOL;
var
DevMode: TDeviceMode;
i: Integer;
begin
Result := False;
i := 0;
while EnumDisplaySettings(nil, i, DevMode) do
with DevMode do
begin
if (dmPelsWidth = XResolution) and
(dmPelsHeight = YResolution) and
(dmBitsPerPel = Depth) then
if ChangeDisplaySettings(DevMode, CDS_UPDATEREGISTRY) =
DISP_CHANGE_SUCCESSFUL then
begin
Result := True;
SendMessage(HWND_BROADCAST, WM_DISPLAYCHANGE, SPI_SETNONCLIENTMETRICS, 0);
Break;
end;
Inc(i);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if ChangeResolution(800, 600, 32) then ShowMessage("Resolution changed!");
end;
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c