![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что происходит при смене разрешения экрана? [D5, Win95/98, WinME, Win2k]
-=[SDA]=- © (2003-10-09 11:51:00)
Во первых, всем здравствуйте! Хочу поменять разрешение экрана так: В OnCreate главной формы пишу
...
var Sc : TDeviceMode;
...
Sc.dmPelsWidth := 1024;
Sc.dmPelsHeight := 768;
Sc.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
ChangeDisplaySettings(Sc,0);
Так вот, если разрешение экрана, например, 1152х854, то разрешение меняется, но исчезает панель задач !? :(, а если текущее разрешение 800х600, то вообще ничего не происходит. В чем тут проблема уже час не могу понять.
Заранее всем спасибо за помощь! ....
-=[SDA]=- (2003-10-09 13:57:00) [1]
>Song © (09.10.03 13:32) [8]
> Ты забыл CDS_UPDATE
И точно, бооольшое спасибо!!!
Теперь пишу:
if ChangeDisplaySettings(sc, CDS_TEST) = DISP_CHANGE_SUCCESSFUL then ChangeDisplaySettings(sc, CDS_UPDATEREGISTRY);
И всё заработало!!! :))))
Song (2003-10-09 13:32:00) [2]
2-=[SDA]=- © (09.10.03 11:51)
Ты забыл CDS_UPDATE
-=[SDA]=- (2003-10-09 12:55:00) [3]
Можно конечно проверять разрешение, выводить message, что не совпадает разрешение с требуемым и закрывать форму, но както не круто :-)? вот!
Юрий Федоров (2003-10-09 12:42:00) [4]
Ну так и пусть диспетчер тогда сам поставт нужное разрешение через панель управления :-)
-=[SDA]=- (2003-10-09 12:40:00) [5]
Да тут всё намного проще: Я знаю что эта прога будет стоять у диспетчера, которому отдадут мой компутер и кроме него там не будет сидеть никого, а тем более запускать какие либо проги Васи Пупкина.
Юрий Федоров (2003-10-09 12:33:00) [6]
А если у него видеокарта древняя или монитор в позапрошлом веке выпущен, и железо вообще такое разрешение не поддерживает?
А что тогда делать программе Васи Пупкина, которая одновременно запущена у этого пользователя, и работает только на 800х600?
Нельзя за пользователя такие вещи решать
Radionov Alexey (2003-10-09 12:32:00) [7]
>-=[SDA]=- © (09.10.03 12:28) [2]
Вот это уж точно пользователю решать "про удобные ему буковки".
-=[SDA]=- (2003-10-09 12:28:00) [8]
А если программа содержит Grid, который при меньшем разрешении экрана весь порастет скроллингами ? Также мне в программе необходимо выводить панель (над гидом) на которой множество параметров для изменения этого грида. Я и так разбил грид на 3 части, вроде все вмещается при 1024х768, так найдется же обязательно какая-нибудь курица, которой буквы покажутся маленькими и ей надо будет сменить разрешение на 800х600, так поэтому и необходимо при запуске менять разрешение на 1024х768 и ловить все WM_DISPLAYCHANGE.
Anatoly Podgoretsky (2003-10-09 12:03:00) [9]
Зачем ты лезешь в жто, хочешь испортить пользователю систему. Есть же внизу значок для смены разрешения, который работает правильно и управляется владельцем компьютера, а не стукр=нутым на голову программистом.