Страница 1 из 1

Работа с экраном.

Добавлено: 21 ноя 2004, 11:40
MaxmaD
Как узнать\изменить разрешение, задать полноэкранный режим?

Добавлено: 22 ноя 2004, 16:59
Romeo
ChangeDisplaySettings. Чтобы сделать полноэкранный режим, нужно просто окно растянуть на весь экран и сделать его системным модальным.

Добавлено: 27 ноя 2004, 11:34
MaxmaD
Хм... что то я не могу найти ChangeDisplaySettings.
Я поступил таким образом:

Код: Выделить всё

//Для растягивания на весь экран формы
form1.Left:=0;
form1.top:=0;
Form1.width:=screen.Width;
Form1.height:=Screen.Height;
//Соответственно screen.Width и Screen.Height показывают разрешение экрана.

А где находятся ChangeDisplaySettings?

Добавлено: 29 ноя 2004, 14:47
Romeo
(C) MSND:

Код: Выделить всё

LONG ChangeDisplaySettings(
  LPDEVMODE lpDevMode,  // graphics mode
  DWORD dwflags         // graphics mode options
);

Windows NT/2000/XP: Included in Windows NT 3.5 and later.
Windows 95/98/Me: Included in Windows 95 and later.
Header: Declared in Winuser.h; include Windows.h.
Library: Use User32.lib.
Иными словами делай include <windows.h> и используй.

P.S. Слово "фальшь" пишиться с мягким знаком в конце. Кипелов - Бог рока.

Добавлено: 11 дек 2004, 19:01
MaxmaD
Я извиняюсь, я только начинающий и не знаю что такое include.
Если можно, ответьте по подробнее. Это всё прописывается в форме или создаётся/берётся специальный файл...

Допустим имеется форма, что надо сделать/написать и где.
Если можно приведите пример.
Заранее благодарен за ответ.

Добавлено: 13 дек 2004, 14:53
Romeo
В том файле, в котором будешь использовать данную функцию, напиши в самом начале:

Код: Выделить всё

   include <windows.h>

Добавлено: 19 дек 2004, 01:36
MaxmaD
Спасибо Вам, Romeo за объяснения. После того как я разобрался, случайно нашёл интересную статью на эту тему. Там рассказывается про функцию Api: ChangeDisplaySettings. Я думаю, что это было бы многим полезно.

Интересная процедура, которая облегчит жизнь для тех кому надо поменять разрешение, но кто не может быстро разобраться:

Код: Выделить всё

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,80); {16 бит цвет, 800х600, 80Гц.};