Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2010, 00:40   #1
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
Вопрос Работа с монитором

Здравствуйте, возник такой вопрос... Возможно ли с Delphi управлять параметрами монитора (яркость, контрасность, частота обновления, положение экрана, сдвиг и растягивания изображения) ?
Интересует любые методы...
P.S.: видюха Nvidia
W0LF вне форума Ответить с цитированием
Старый 17.04.2010, 10:15   #2
CraftR14
Все к лучшему...
Форумчанин
 
Регистрация: 06.04.2010
Сообщений: 112
По умолчанию

Код:
unit unit1;

interface

uses
windows, messages, sysutils, variants, classes, graphics, controls, forms,
dialogs, stdctrls;

type
tform1 = class(tform)
button1: tbutton;
button2: tbutton;
procedure button1click(sender: tobject);
procedure button2click(sender: tobject);
procedure formcreate(sender: tobject);
procedure formdestroy(sender: tobject);
private
{ private declarations }
public
{ public declarations }
end;

var
form1: tform1;

implementation

{$r *.dfm}

type
tramparray=array[0..2] of array[byte] of word; // массив для хранения таблиц гамма-коррекции (gamma ramp)

var
origramparray:tramparray; // текущие значения gamma ramp

// Ф-ция изменения яркости. Чем больше wbrightness, тем больше яркость
function setbrightness(wbrightness:word):boolean;
var
ramparray:tramparray;
i, value:integer;
dc:hdc;
begin
for i:=0 to maxbyte do
begin
value := i * (wbrightness + 128);
if (value > maxword) then value := maxword;
ramparray[0][i] := value;
ramparray[1][i] := value;
ramparray[2][i] := value;
end;

dc:=getdc(0);
try
result:= setdevicegammaramp(dc,ramparray)
finally
releasedc(0,dc)
end
end;

// cохраняем текущие значения gamma ramp
procedure tform1.formcreate(sender: tobject);
var
dc:hdc;
begin
dc:=getdc(0);
try
getdevicegammaramp(dc,origramparray)
finally
releasedc(0,dc)
end
end;

// Меняем яркость
procedure tform1.button1click(sender: tobject);
begin
setbrightness(64)
end;

// Восстанавливаем gamma ramp
procedure tform1.button2click(sender: tobject);
var
dc:hdc;
begin
dc:=getdc(0);
try
setdevicegammaramp(dc,origramparray)
finally
releasedc(0,dc)
end
end;

procedure tform1.formdestroy(sender: tobject);
begin
button2click(button2)
end;

end.
CraftR14 вне форума Ответить с цитированием
Старый 17.04.2010, 14:56   #3
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Желательно работа с драйвером видеокарты... Ваш метод CraftR14 и не полностью изменяет яркость, а именно не изменяет яркость самого курсора...
W0LF вне форума Ответить с цитированием
Старый 17.04.2010, 18:29   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...у меня тоже меняет яркость всего изображения на экране монитора, кроме курсора ...интересно, это особенность gdi
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 09.12.2011, 14:44   #5
Marquez
 
Регистрация: 07.12.2011
Сообщений: 8
По умолчанию

А это же только на С Билдер есть ?
Marquez вне форума Ответить с цитированием
Старый 08.06.2012, 16:48   #6
PapaNT
Новичок
Джуниор
 
Регистрация: 08.06.2012
Сообщений: 1
Вопрос

А функцию переключения активного монитора можно добавить?
PapaNT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что с монитором Gromsky Компьютерное железо 11 19.08.2009 11:49
Проблема с монитором? SAnet Компьютерное железо 3 26.08.2008 23:46
Проблема с монитором IRONMAN Компьютерное железо 3 12.08.2007 02:36
Управление Монитором _XspeC_ Общие вопросы Delphi 3 26.03.2007 19:28