Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
ВнизЦвет пикселя от положния курсора на экране Найти похожие ветки
← →
asvt (2004-12-24 08:25) [0]Доброе время суток,
Нужно получить цвет пикселя не взависимости в моей программе курсор или нет
В какую сторону копать подскажите?
← →
MBo © (2004-12-24 08:40) [1]в сторону GetDC(0) и GetPixel
← →
asvt (2004-12-24 08:56) [2]>>Mbo
Спасибо все понятно, вот только куда это впихать
var
P: TPoint;
C: COLORREF;
begin
GetCursorPos(P);
DC:= GetDC(0);
C:= GetPixel(DC,P.x,P.y);
ReleaseDC(0,0);
Panel1.Color:= C;
что то в этом роде
но тогда в какой процедуре ,по таймеру наверно не очень хорошо?
← →
asvt (2004-12-24 08:58) [3]Да забыла сказать
при перемещение курсора цвет тоже менятся на контроле должен
← →
KSergey © (2004-12-24 09:15) [4]1) OnMouseMove (только я не помню генерится ли оно когда мышь вне компонента)
2) см. SetCapture/ReleaseCapture, обрабатывать WM_MOUSEMOVE
← →
asvt (2004-12-24 09:25) [5]KSergey © (24.12.04 09:15) [4]
1. Не генерится
2. Если обрабатывать WM_MouseMove, то это же тоже будет только для контрола, или нифига в спраке не поняла
← →
MBo © (2004-12-24 09:31) [6]>при перемещение курсора цвет тоже менятся на контроле должен
тогда придется хук на мышь ставить.
← →
asvt (2004-12-24 09:46) [7]MBo © (24.12.04 09:31) [6]
>тогда придется хук на мышь ставить.
Думала в трех словах выражу
А тут все больше и больше поджидает
Да задача вот
Давим Button в Cheked Курсор пошел либо выбирать цвет из стандартного мною предоставленой сетке(палитры) либо пошел блуждать по форме и за ее приделы(в превью-панелке)показывается цвет от курсора(X,Y) , при клике мышью в любом месте сетка сворачивается и цвет передается уже непосредственно в свойства объектов
← →
asvt (2004-12-24 10:33) [8]Вообщем думала что таймер это слишком тормозно,
оказалось что нет
Осталось как кликнуть в любом месте экрана и остановить его.
А че коряво то курсор то везде разный
А хотелось бы свой задать, а как это сделать для всего экрана
← →
KSergey © (2004-12-24 11:40) [9]> [8] asvt (24.12.04 10:33)
> А че коряво то курсор то везде разный
> А хотелось бы свой задать, а как это сделать для всего экрана
Видимо все же хук с обработкой WM_SETCURSOR
← →
asvt (2004-12-24 12:07) [10]KSergey © (24.12.04 11:40) [9]
А если прогу аварийно завершить курсор навечно останется?
← →
KSergey © (2004-12-24 12:39) [11]Хороший вопрос... ;)
Признаться, я не знаю что будет с хуком... Я не спец, но есть тут гиганты мысли, думаю скажут
Если же вообще система не умрет - то при следующем же минимальном движении мыши вновь придет сообщение WM_SETCURSOR которе уже (надеюсь) попадет куда надо (к окнам, которые выжили таки на экране) - и он ве сделаю как надо.
Так что, думаю, все будет хорошо. Ну либо все будет плохо - а тогда уже эти мелочи (курсор) никого нафиг волновать не будут ;)
← →
asvt (2004-12-24 13:22) [12]А Hook на мышь можно написать без использования DLL?
А то я у Рихтора только с DLL пример вижу
А мне это не как так как хочу как компоненту оформить, а DLL к компоненте не нужна
Точнее компонента та уже есть, только вот хочется добавить такую возможность.
← →
KSergey © (2004-12-24 13:31) [13]Тут хуки обсуждались не раз и не два.. Пошукайте по форуму... Может в разделе WinAPI
Но похоже - хук на все приложения - это dll. Хотя, а вот ведь надо чтобы работало лишь при активности проложения.. Может и можно?
Ну можно эту возможность опционально включать... Есть dll -ставим глобальный. Т.е. полный функционал. Нет возможности - ну тогда только в пределах приложения...
Впрочем, чего я гадаю...
← →
grom (2004-12-24 17:47) [14]http://delphimaster.net/view/8-1102772762/
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.039 c