Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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
14-1092203014
peypivo
2004-08-11 09:43
2004.08.29
И как после такого руки не отсыхают?


1-1092382064
serg128
2004-08-13 11:27
2004.08.29
Как отследить момент закрытия Excel?


14-1091902628
Maxim
2004-08-07 22:17
2004.08.29
Дополнения


4-1088519828
Rain
2004-06-29 18:37
2004.08.29
Прием DTMF сигналов посредством модема


1-1092657743
dracula
2004-08-16 16:02
2004.08.29
ValueListEditor





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский