Добрый вечер многоуважаемый Alegun!
Туть суть немного в другом. Цвет панели, это как бы я указал просто, опеределенное действие. А теперь поясню чтобы не было как раз тех самых непоняток. С главной формы я определяю координаты области экрана (верхний левый угол - X1Y1, правый нижний угол - X2Y2), в компоненте ColorDialog указываю необходимый цвет (например красный), который должен находиться в области X1Y1 X2Y2, и если он там есть то выполняется одно условие. Вот этот и есть модуль-сканер цвета, который запускается по таймеру каждые 15 секунд, и проверяет это самое условие, т.е. если допустим красный цвет попадает в область X1Y1 X2Y2 то программа выполняет действие (пускай будет клик мышки). А если сканер не находит этот красный цвет, то останавливает выполнения действия (клик мышки), при этом сканер продолжает работать и искать все в той же области искомый цвет (красный) с тем же интервалом 15 секунд, и если через вдруг при очередном сканировании находит искомый красный цвет, то возобновляет выполнение действия (клик мышки).
Этот код я видел, он мне немного не пожходит вот почему. Тут условие такое, что мышь в это время находится вне области X1Y1 X2Y2 и выполняет опеределенное действие, а этот код и определяет цвет под курсором, т.е. в том месте где находится мышь, при этом координаты нахождения мыши на экране фиксированы и записаны (т.е. никаких лево и право) и она соответственно будет бить все время в один пиксель, в одном месте.
У меня собственно в сканере (код выше) получилось сделать так:
Код:
procedure TScan.Execute;
var
x,y : integer;
begin
Repeat
For x:=X1 To X2 Do
For y:=Y1 To Y2 Do
// If GetPixel(c.Handle,x,y)=Cl Then
If c.Pixels[x,y]=Cl Then Synchronize(FindVisual);
else If c.Pixels[x,y]<>Cl Then Synchronize(Conrtol);
Until Terminated;
end;
Но тут проблема у меня в
<>Cl и я это понимаю, так как значение
CL может быть и больше и меньше, и оно может тоже попадать в область X1Y1 X2Y2 соответсвенно это не то требование, которое мне нужно. А как по уму записать это условие, у меня чот голова не догоняет пока.
Т.е. нужно следующее - если в области X1Y1 X2Y2 искомый цвет то выполняется процедура 1, если в этой же области этого цвета нет, то выполняется процедура 2. Однако этот искомый цвет может появляться и исчезать периодически. Для этого собственно и сделал сканер, который работает по времени.
Добиться того чтобы выполнялось действие 1 у меня в принципе получилось, вот теперь осталось получить действие 2 при работе сканера... а на что заменить вот этот кусок
If c.Pixels[x,y]=Cl я не знаю.