Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не могу разобраться с параметрами видеосистемы!!! [D5]


Alex10 ©   (2003-11-03 10:30:00) 

1.Как определить частоту экрана?

2.Возможно ли получить параметры (разрешение, частоту, глубину цвета) текущего видеорежима с помощью функции EnumDisplaySettings(nil, 0, DevMode)?

3.Как установить частоту экрана? Данный фрагмент не работает (т.е. выполняется без ошибок, но частота остается прежней):

ZeroMemory(@MonitorMode, SizeOf(TDevMode));
MonitorMode.dmSize := SizeOf(TDevMode);
MonitorMode.dmDisplayFrequency := 85;
MonitorMode.dmFields := DM_DISPLAYFREQUENCY;
ChangeDisplaySettings(MonitorMode, CDS_UPDATEREGISTRY);

P.S. В Windows XP срабатывает, не работает в Windows 98

4.Почему флаг CDS_GLOBAL не работает - меняются настройки только текущего пользователя:
ZeroMemory(@MonitorMode, SizeOf(TDevMode));
MonitorMode.dmSize := SizeOf(TDevMode);
MonitorMode.dmBitsPerPel := 16;
MonitorMode.dmPelsWidth := 1024;
MonitorMode.dmPelsHeight := 768;
MonitorMode.dmDisplayFrequency := 85;
MonitorMode.dmFields := DM_BITSPERPEL + DM_PELSWIDTH + DM_PELSHEIGHT + DM_DISPLAYFREQUENCY;
ChangeDisplaySettings(MonitorMode, CDS_GLOBAL + CDS_UPDATEREGISTRY);

Спасибо


Alex10   (2003-11-04 12:21:00) [1]

А КАК получить текущие настройки с помощью EnumDisplaySettings(nil, 0, DevMode)?


Alex10   (2003-11-04 12:17:00) [2]

Драйвера и устройства поддерживают те режимы - в ручную проставляются без проблем. В ХР тот же код работает корректно. Функция возращает значение 0 (т.е IDS_xxx_SUCCESLFULL)


Woolen   (2003-11-03 14:54:00) [3]

3:
Забыл сказать. Неплохобы проверить результат работы функции, потому что по разным причинам возвращаются разные коды ошибки. Может это прольет свет на происходящую ошибку.


Woolen   (2003-11-03 14:42:00) [4]

3: А драйвер, видеоустройство и монитор, которые в 98 установлены поддерживают такую частоту при таком разрешениии глубине цвета? Рекомендую выяснять сначала допустимость таких установок при помощи EnumDisplaySettings, потом проверять текущее разарешение и глубину цвета, а потом сверять - есть ли среди полученных допустимых режимов подходящий, чтобы текущее разаршение и цвет сочетались с желаемой желаемая частотой.


Woolen   (2003-11-03 14:35:00) [5]

2: Да.


Woolen   (2003-11-03 14:00:00) [6]

1:
A := GetDc(0);
Rate := GetDeviceCaps(A,VREFRESH);
ReleaseDC(A);
Только в NT


Наверх

Титульная страница Поиск, карта сайта Написать письмо