![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
я сделала программу на делфи. почему после того как из нее выход
Lubacha © (2006-12-06 18:02:00)Я сделала программу на делфи. почему после того как из нее выходишь меняется частота обновления монитора до 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;
Elen (2006-12-07 08:42:00) [1]
> Lubacha © (06.12.06 18:02)
> Я меняю разрешение экрана, но частоту не трогаю.
Если не секрет зачем. Просто знаю по себе что такие перемены должны быть не часты, если это не комп. игра?
Германн (2006-12-07 01:02:00) [2]
> Anatoly Podgoretsky © (06.12.06 20:27) [12]
>
> Так ты Lubacha или Aleksandr77
>
Похоже, что она это он :-)
Anatoly Podgoretsky (2006-12-06 20:27:00) [3]Так ты Lubacha или Aleksandr77
Virgo_Style (2006-12-06 19:37:00) [4]Virgo_Style © (06.12.06 19:08) [10]
а лучше, imho, забрать всю информацию о текущем режиме посредством EnumDisplaySettings, а потом передать ее ChangeDisplaySettings.
Virgo_Style (2006-12-06 19:08:00) [5]раскрываю намек из [5]:
The following fields in the DEVMODE structure are used:
Member Meaning
...
dmDisplayFrequency Mode frequency
Lubacha (2006-12-06 18:36:00) [6]Ну подскажите пожалуйста?
Lubacha (2006-12-06 18:20:00) [7]vidiv © (06.12.06 18:16) [6]
>через панель управления =)
я понимаю что так легче всего )), но как сделать программно?
Lubacha (2006-12-06 18:18:00) [8]изменение разрешение экрана я взяла с delphiword, так что описание TDEVMODE даже незнаю где-нибудь?
vidiv (2006-12-06 18:16:00) [9]
> Lubacha © (06.12.06 18:10) [4]
> А как мне вернуть частоту обновления к той, которая была
> до входа в программу?
через панель управления =)
novill (2006-12-06 18:13:00) [10]а в описании TDEVMODE смотрели?
Lubacha (2006-12-06 18:10:00) [11]А как мне вернуть частоту обновления к той, которая была до входа в программу?
vidiv (2006-12-06 18:09:00) [12]Видимо при показе формы частота снижается на предельно допустимую, а при возврате не повышается обратно.
Сохраните частоту и восстановите частоту.
А вообще не понятно, зачем обычному приложению для себя разрешение ставить офигенное
Array (2006-12-06 18:07:00) [13]Lubacha ©
Да потому что у Вас монитор на 1280х1024 не тянет 60 Гц
ajlekceu (2006-12-06 18:07:00) [14]есть у мониторов такое свойство нехорошее, чем больше разрешение тем меньшая частота может с этим разрешением использоваться
штука эта автоматическая, так что может дело в этом