Форум: "Основная";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];
ВнизПрограммное изменение разрешения экрана Найти похожие ветки
← →
*Ray* © (2006-11-29 12:56) [0]Доброе время суток, дамы и господа!
Помогите пожалуйста советом, как можно при загрузке программы запомнить текущение разрешение экрана, поставить нужное мне разрешение, а после завершения работы с программой, опять вернуть разрешение, которое было. Заранее спасибо!
← →
DVM © (2006-11-29 12:59) [1]var
i: integer;
mode: TDevMode;
Res: integer;
begin
Result := true;
i := 0;
Res := 0;
while EnumDisplaySettings(nil, i, mode) do
begin
if (mode.dmPelsWidth = 1024) and (mode.dmPelsHeight = 768) and
(mode.dmBitsPerPel = 32) and (mode.dmDisplayFrequency = 85) then
Res := ChangeDisplaySettings(mode, CDS_UPDATEREGISTRY);
Inc(i);
end;
end;
← →
Anatoly Podgoretsky © (2006-11-29 13:08) [2]> *Ray* (29.11.2006 12:56:00) [0]
DirectX за остальное сильно пинать ногами.
← →
DVM © (2006-11-29 13:17) [3]
> DirectX за остальное сильно пинать ногами.
А как же OpenGL?
← →
Anatoly Podgoretsky © (2006-11-29 18:28) [4]> DVM (29.11.2006 13:17:03) [3]
> А как же OpenGL?
Про это не знаю, читай ответ так - только не средствами АПИ, это недопустимо если только не хочешь навредить пользователю, другие разрешения должны использоваться на surface
← →
Ганна Юхимівна (2006-11-30 08:50) [5]
>DVM © (29.11.06 12:59) [1]
> Res := ChangeDisplaySettings(mode, CDS_UPDATEREGISTRY);
"Повбивав би..."
... а потом иконки приходиться по рабочему столу собирать.
Прав Анатолий - только на своей поверхности ! Вам молодой человек нужно в конференцию "Игры".
← →
DVM © (2006-11-30 10:10) [6]
> "Повбивав би..."
> ... а потом иконки приходиться по рабочему столу собирать.
>
Чего просили, то и написал.
← →
Anatoly Podgoretsky © (2006-11-30 10:14) [7]> DVM (30.11.2006 10:10:06) [6]
Разве просили рабочий стол портить?
← →
DVM © (2006-11-30 10:21) [8]
> Разве просили рабочий стол портить?
А разве про сохранение положения иконок упоминалось? Разрешение код меняет. Это и просили. Если человек сообразителтный он заменит на CDS_FULLSCREEN или другой флаг подходящий.
← →
ЮЮ © (2006-11-30 11:54) [9]
> *Ray* © (29.11.06 12:56)
А может лучше свою программу научить правильно работать с любым, ужеустановленным пользователем
, разрешением экрана?
← →
Darvin © (2006-11-30 11:54) [10]ChangeDisplaySettings ( Mode, 0 ); - не меняет положения иконок. Работает уже 4 года в программе
← →
*Ray* © (2006-12-05 12:42) [11]Большое спасибо за помощь!
← →
DevilDevil © (2006-12-05 13:09) [12]
// изменить
procedure ChangeDisplaySettings(ScreenX, ScreenY : word);
var
dm : TDEVMODE;
begin
ZeroMemory(@dm, sizeof(TDEVMODE));
dm.dmSize := sizeof(TDEVMODE);
dm.dmPelsWidth := ScreenX;
dm.dmPelsHeight := ScreenY;
dm.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
ChangeDisplaySettings(dm, 0);
end;
// восстановить
procedure RestoreDisplaySettings;
begin
ChangeDisplaySettings(PDEVMODE(nil)^, 0);
end;
← →
Loginov Dmitry © (2006-12-05 15:34) [13]> это недопустимо если только не хочешь навредить пользователю
Причем иному пользователю может так навредить, что потом в SafeMode приходится дрова для монитора сносить.
← →
Anatoly Podgoretsky © (2006-12-05 16:01) [14]> Loginov Dmitry (05.12.2006 15:34:13) [13]
Для монитора, а видео не хочешь?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c