|
#1
|
||||
|
||||
Сканер цвета
Доброго времени суток!
Помогите пожалуйста с модулем - он же сканер цвета. Вот код модуля, в котором 3 процедуры. Код:
unit Unit2; interface uses Classes, Graphics; type TScan = class(TThread) private Procedure FindVisual; Procedure Control; protected procedure Execute; override; end; Var Scan : TScan; implementation Uses Unit1; { TScan } Procedure TScan.FindVisual; Begin Form1.Panel1.Color:= clLime; End; Procedure TScan.Control; Begin Form1.Panel1.Color:= clRed; End; 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); Until Terminated; end; end. Procedure TScan.Execute - сканирует указанную область экрана на соответствие цвета, который выбран в ColorDialog на основной форме и если условие выполняется, то передает команду процедуре TScan.FindVisual. Procedure TScan.FindVisual - обрабатывает результаты со сканера и выполняет действие № 1. Проблема возникла вот в чем. Как правильно прописать в процедуре TScan.Execute условие когда в заданой области нет того самого цвета, который выбран в ColorDialog на основной форме и передать команду процедуре TScan.Control, которая будет выполнять действие № 2. Спасибо заранее! |