Вниз
Скачать: CL | DM;

Цвет пикселя от положния курсора на экране   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.026 c
14-1103872673
Чеширский_Кот
2004-12-24 10:17
2005.01.16
Good day


14-1104019328
Piter
2004-12-26 03:02
2005.01.16
Выщел update-1 для D2005


1-1104681424
CTAPbIi
2005-01-02 18:57
2005.01.16
Использование DrawText в обработчике DrawColumnCell в DBGrid


3-1102591130
Guitar
2004-12-09 14:18
2005.01.16
Ошибка при создании файла UDL


4-1101630782
Alexis
2004-11-28 11:33
2005.01.16
Найти принадлежащие процессу окна...




   Наверх