Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 784

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!

Как изменить размер рабочего стола, как это делает панель задач?

Фамилия Имя Отчество Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Фамилия Имя Отчество (статус: Посетитель)
Вопрос отправлен: 24 июля 2007, 14:27
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 6; последнее сообщение — 26 июля 2007, 11:58; участников в обсуждении: 3.
Аксион

Аксион (статус: 4-ый класс), 24 июля 2007, 14:39 [#1]:

procedure SetScreen(BPP:byte;width,height,FR:integer);
var
D: TDevMode;
h: HWND;
begin
h:=0;
D.dmDeviceName:=\'DISPLAY\';
D.dmBitsPerPel:=BPP;
D.dmDisplayFrequency:=FR;
D.dmPelsWidth:=Width;
D.dmPelsHeight:=Height;
D.dmFields:=DM_BITSPERPEL+DM_PELSWIDTH+DM_PELSHEIGHT+DM_DISPLAYFREQUENCY;
D.dmSize:=SizeOf(D);
if ChangeDisplaySettings(D,CDS_TEST)=DISP_CHANGE_SUCCESSFUL then
ChangeDisplaySettings(D,CDS_UPDATEREGISTRY)
else
MessageBox(h,\'This mode is not supported by your video.\',
\'Failed to change mode\', MB_ICONWarning);
end;

Вызывается так: SetScreen(глубина цвета, разрешение по горизонтали, разрешение по вертикали, частота в герцах); Например:
SetScreen(16,800,600,80); {16 бит цвет, 800х600, 80Гц.}

При завершении программы для восстановления старых параметров вызываем эту процедуру с сохраненными ранее значениями:
SetScreen(BPP,DefWidth,DefHeight,80);

Взято с http://delphiworld.narod.ru
Аксион

Аксион (статус: 4-ый класс), 24 июля 2007, 14:42 [#2]:

вот ещё:
procedure ChangeDisplayResolution(x, y: word);
var
dm: TDEVMODE;
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;
Dron

Dron (статус: Студент), 25 июля 2007, 09:48 [#3]:

Матвеев Мефодий Олегович: размеры рабочего стола и разрешение экрана - это разные вещи. Речь совсем о другом.
С уважением.
Аксион

Аксион (статус: 4-ый класс), 25 июля 2007, 11:53 [#4]:

>>размеры рабочего стола и разрешение экрана - это разные вещи. Речь совсем о другом.
О чём?
Dron

Dron (статус: Студент), 25 июля 2007, 14:09 [#5]:

Речь о размерах той области рабочего стола, что является клиентской, т.е. той, где расположены значки и на которой размещаются открытые окна. К примеру, если изменить размер панели задач (например, "подтянуть" её повыше), то эта область станет меньше в высоту. Разрешение экрана в этом случае не при чём.
С уважением.
Фамилия Имя Отчество

Фамилия Имя Отчество (статус: Посетитель), 26 июля 2007, 11:58 [#6]:

Совершенно верно Dron.
Нужно поменять размер, а не разрешение.

Аналог: winamp при modern skin в режиме docked.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 12:02
Выполнено за 0.03 сек.