Показать сообщение отдельно
  #1  
Старый 12.04.2010, 22:13
nikki4 nikki4 вне форума
Прохожий
 
Регистрация: 07.04.2010
Сообщения: 10
Репутация: 10
По умолчанию Помогите найти причину, почему разные цветы пикселей получаются

Есть кнопка:
Код:
GetCursorPos (mish);
edit8.text:=inttostr(mish.X);
edit9.Text:=inttostr(mish.Y);
HC := CreateDC('Display', nil, nil, nil);
edit12.text:= inttostr(GetPixel(HC,mish.X,mish.Y));
DeleteDC(HC);
Она записывает Х и У координаты мыши, а еще цвет точки в эдит12


Есть еще другая кнопка.. вот кусочек из нее:

Код:
HC:= CreateDC('Display', nil, nil, nil);
  if strtoint(edit12.text)<>GetPixel(HC,strtoint(edit8.text),strtoint(edit9.text)) then
  begin
  showmessage (inttostr(GetPixel(HC,strtoint(edit8.text),strtoint(edit9.text))));
  break;
  end;
  DeleteDC(HC);
Получается например в эдите 12 "5794559"
а в процессе работы программы появляется сообщение "4872662"

пробовал менять координаты всеравно не совпадает почему-то..

может то связанно как-то из за другой части кода?
там выше:

Код:
DC := CreateDC('Display', nil, nil, nil);
  Color := GetPixel(DC,x0,y0);
всякие циклы..
  DeleteDC(DC);
потом end; и то что выше с HC

мне просто нужно условие, типа если цвет пикселя в опредленной координате такой-то.. (как в эдите12) тогда сделать то-то..


для теста сделал:
Код:
GetCursorPos (mish);
edit13.text:=inttostr(mish.X);
edit14.text:=inttostr(mish.Y);
 HC := CreateDC('Display', nil, nil, nil);
 edit15.Text:=inttostr(GetPixel(HC,strtoint(edit13.text),strtoint(edit14.text)));
showmessage (inttostr(GetPixel(HC,1067,624)));
DeleteDC(HC);
Если навести курсором в какую-нибудь точку экрана, то прога в эдите15 показывает цвет, куда наведен курсор
После чего появляется сообщение 1184431.
Но если курсор навести прямо на точку 1067, 624 то оба варианта покажут 1381841, хотя не обязательно на ту точку наводить, во втором случает такой результат будет если просто навести на ту кнопку.. Ниче не понимаю..
Ответить с цитированием