Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2008, 20:01   #1
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию Разрешение экрана

У меня есть игра. Размеры формы 800*600. Как установить такое разрешение экрана, старое значение разрешения запомнить и при выходе установить?
Манжосов Денис :) вне форума Ответить с цитированием
Старый 27.05.2008, 20:58   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Не нужно ничего запоминать и устанавливать при выходе. Вызывайте EnumDisplaySettings, выбирайте один из подходящих режимов (из тех, что она вернёт) и устанавливайте его через ChangeDisplaySettings с флагом CDS_FULLSCREEN. После завершения программы Windows восстановит предыдущий режим.
B_N вне форума Ответить с цитированием
Старый 28.05.2008, 19:41   #3
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Я не понимаю. Я попробовал но ничего не получается. Может кто нибудь показать это на коде?
Манжосов Денис :) вне форума Ответить с цитированием
Старый 28.05.2008, 23:17   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Код:
procedure TForm1.FormCreate(Sender: TObject);

var
    dm          : DEVMODE;
    goodmode    : DEVMODE;
    i           : integer;
begin

    dm.dmSize := sizeof (DEVMODE);
    i := 0;
    goodmode.dmDisplayFrequency := 0;
    goodmode.dmBitsPerPel       := 0;

    while BOOLEAN(EnumDisplaySettings(nil, i, dm)) do begin
        if( (dm.dmPelsWidth = 800) AND (dm.dmPelsHeight = 600) ) then begin
            if(
                (dm.dmDisplayFrequency > goodmode.dmDisplayFrequency)
                AND
                (dm.dmBitsPerPel >= goodmode.dmBitsPerPel)
            ) then begin
                goodmode := dm;
            end;
        end;
        i := i + 1;
    end;

    if (goodmode.dmBitsPerPel > 0) then begin

        ChangeDisplaySettings(
                goodmode,
                CDS_FULLSCREEN);

        SetWindowPos(
                self.Handle,
                HWND_TOPMOST,
                0,
                0,
                goodmode.dmPelsWidth,
                goodmode.dmPelsHeight,
                0);
    end;

end;
B_N вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разрешение экрана Sweta HTML и CSS 4 06.09.2008 10:05
Разрешение экрана Михаил Юрьевич Общие вопросы Delphi 3 11.07.2008 21:33
Изменить разрешение Иллидан Паскаль, Turbo Pascal, PascalABC.NET 1 18.04.2008 22:15
Разрешение экрана -=<[Evklidd]>=- Общие вопросы Delphi 1 20.02.2008 10:55
Где узнать текущее разрешение экрана? Teksa Помощь студентам 2 07.09.2007 17:19