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

Вниз

я сделала программу на делфи. почему после того как из нее выход   Найти похожие ветки 

 
Lubacha ©   (2006-12-06 18:02) [0]

Я сделала программу на делфи. почему после того как из нее выходишь меняется частота обновления монитора до 60 Гц? Я меняю разрешение экрана, но частоту не трогаю.
Открытие формы

procedure TForm1.FormShow(Sender: TObject);
begin
 x:= Screen.Width;
 y:= Screen.Height;
 ZeroMemory(@dm, sizeof(TDEVMODE));
 dm.dmSize := sizeof(TDEVMODE);
 dm.dmPelsWidth := 1280;
 dm.dmPelsHeight := 1024;
 dm.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
 ChangeDisplaySettings(dm, 0);
end;

Окончание работы программы
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin

Case MessageBox(h,"Закончить работу с программой?","Сообщение",68) of
idNo: Abort;
idYes: begin
 ZeroMemory(@dm, sizeof(TDEVMODE));
 dm.dmSize := sizeof(TDEVMODE);
 dm.dmPelsWidth := x;
 dm.dmPelsHeight := y;
 dm.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
 ChangeDisplaySettings(dm, 0);
 end;
end;
end;


 
Array ©   (2006-12-06 18:07) [1]

Lubacha ©  

Да потому что у Вас монитор на 1280х1024 не тянет 60 Гц


 
ajlekceu ©   (2006-12-06 18:07) [2]

есть у мониторов такое свойство нехорошее, чем больше разрешение тем меньшая частота может с этим разрешением использоваться
штука эта автоматическая, так что может дело в этом


 
vidiv ©   (2006-12-06 18:09) [3]

Видимо при показе формы частота снижается на предельно допустимую, а при возврате не повышается обратно.
Сохраните частоту и восстановите частоту.
А вообще не понятно, зачем обычному приложению для себя разрешение ставить офигенное


 
Lubacha ©   (2006-12-06 18:10) [4]

А как мне вернуть частоту обновления к той, которая была до входа в программу?


 
novill ©   (2006-12-06 18:13) [5]

а в описании TDEVMODE смотрели?


 
vidiv ©   (2006-12-06 18:16) [6]


> Lubacha ©   (06.12.06 18:10) [4]
> А как мне вернуть частоту обновления к той, которая была
> до входа в программу?

через панель управления =)


 
Lubacha ©   (2006-12-06 18:18) [7]

изменение разрешение экрана я взяла с delphiword, так что описание TDEVMODE даже незнаю где-нибудь?


 
Lubacha ©   (2006-12-06 18:20) [8]

vidiv ©   (06.12.06 18:16) [6]
>через панель управления =)
я понимаю что так легче всего )), но как сделать программно?


 
Lubacha ©   (2006-12-06 18:36) [9]

Ну подскажите пожалуйста?


 
Virgo_Style ©   (2006-12-06 19:08) [10]

раскрываю намек из [5]:

The following fields in the DEVMODE structure are used:

Member Meaning
...
dmDisplayFrequency Mode frequency


 
Virgo_Style ©   (2006-12-06 19:37) [11]

Virgo_Style ©   (06.12.06 19:08) [10]
а лучше, imho, забрать всю информацию о текущем режиме посредством EnumDisplaySettings, а потом передать ее ChangeDisplaySettings.


 
Anatoly Podgoretsky ©   (2006-12-06 20:27) [12]

Так ты Lubacha или Aleksandr77


 
Германн ©   (2006-12-07 01:02) [13]


> Anatoly Podgoretsky ©   (06.12.06 20:27) [12]
>
> Так ты Lubacha или Aleksandr77
>

Похоже, что она это он :-)


 
Elen ©   (2006-12-07 08:42) [14]


> Lubacha ©   (06.12.06 18:02)  
> Я меняю разрешение экрана, но частоту не трогаю.

Если не секрет зачем. Просто знаю по себе что такие перемены должны быть не часты, если это не комп. игра?



Страницы: 1 вся ветка

Текущий архив: 2006.12.24;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.061 c
4-1155543437
TRyaSS
2006-08-14 12:17
2006.12.24
Как определить состояние принтера(готов, не подключен,...)?


15-1165221574
Stanislav
2006-12-04 11:39
2006.12.24
Чем занимается организация? ваше мнение


15-1164916245
Kerk
2006-11-30 22:50
2006.12.24
Едем на футбол :))))


2-1165376580
Desk
2006-12-06 06:43
2006.12.24
Подскажите алгоритм доски?


1-1163073707
Ш-К
2006-11-09 15:01
2006.12.24
TWebBrowser и ивенты