Страница 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
В том файле, в котором будешь использовать данную функцию, напиши в самом начале:
Добавлено: 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Гц.};