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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2007, 21:32   #1
Кронос
Пользователь
 
Регистрация: 29.04.2007
Сообщений: 66
По умолчанию Полноэкранный режим

Объясните, как сделать полноэкранный режим кроме спосаба где:

1) Значения Height:=x и Width:+y
1) Свойству BorderStyle присваивается значение bsNone.
2) Програмно устанавливается значение разрешение экрана, где ширина=x и высота=y.
Кронос вне форума Ответить с цитированием
Старый 26.08.2007, 12:17   #2
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Вот так можно:
Код:
ShellApi
...
var
  DefWidth, DefHeight, BPP: word;{цвета, ширина, высота}
  DefFR:integer;{частота}
...
procedure SetScreen(BPP:byte;width,height,FR:integer);
var
  D: TDevMode;
  h: HWND;
begin
  h:=0;
  D.dmDeviceName:='DISPLAY';
  D.dmBitsPerPel:=BPP;
  D.dmDisplayFrequency:=FR;
  D.dmPelsWidth:=Width;
  D.dmPelsHeight:=Height;
  D.dmFields:=DM_BITSPERPEL+DM_PELSWIDTH+DM_PELSHEIGHT+DM_DISPLAYFREQUENCY;
  D.dmSize:=SizeOf(D);
  if ChangeDisplaySettings(D,CDS_TEST)=DISP_CHANGE_SUCCESSFUL then
    ChangeDisplaySettings(D,CDS_UPDATEREGISTRY)
  else
    MessageBox(h,'This mode is not supported by your video.',
    'Failed to change mode', MB_ICONWarning);
end;

..
SetScreen(16,800,600,75); {16 бит цвет, 800х600, 75Гц.}
..
При инициализации формы сохраняем текущии настройки:
Код:
procedure SaveSettings;
var
  DC: hDC;
begin
  DefWidth := Screen.Width;
  DefHeight := Screen.Height;
  DC := CreateDC('DISPLAY', nil, nil, nil);
  BPP := GetDeviceCaps(DC, BITSPIXEL);
  DefFR:=GetDeviceCaps(DC, VREFRESH);
end;
При завершении восстанавливаем настройки экрана:
Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  SetScreen(BPP,DefWidth,DefHeight,DefFR);
end;
Alex21 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переход в полноэкранный режим andrey4623 Общие вопросы Delphi 7 11.03.2008 09:28
Помогить настроить полноэкранный режим для Turbo Pascal 7.0 в Терминале olegbelyi Паскаль, Turbo Pascal, PascalABC.NET 1 30.10.2007 13:05
полноэкранный режим в Delphi deadh5n1 Общие вопросы Delphi 1 27.06.2007 09:18
Полноэкранный режим и главное меню Voland Общие вопросы Delphi 2 03.04.2007 10:56
Полноэкранный режим mishel Общие вопросы Delphi 2 26.01.2007 02:31