Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.28;
Скачать: CL | DM;

Вниз

Программное изменение разрешения экрана   Найти похожие ветки 

 
*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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.071 c
15-1168014485
vidiv
2007-01-05 19:28
2007.01.28
Купил себе стиральную машину...


11-1146722668
NewLC
2006-05-04 10:04
2007.01.28
Совместное использование ActiveX ов


9-1142913299
VolanD666
2006-03-21 06:54
2007.01.28
Освещенность точки


3-1163013159
ivan8511
2006-11-08 22:12
2007.01.28
Создать программно базу данных


15-1168259090
Extar
2007-01-08 15:24
2007.01.28
И снова здравствуйте