![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Есть кнопка:
Код:
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); Есть еще другая кнопка.. вот кусочек из нее: Код:
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); а в процессе работы программы появляется сообщение "4872662" пробовал менять координаты всеравно не совпадает почему-то.. может то связанно как-то из за другой части кода? там выше: Код:
DC := CreateDC('Display', nil, nil, nil); Color := GetPixel(DC,x0,y0); всякие циклы.. DeleteDC(DC); мне просто нужно условие, типа если цвет пикселя в опредленной координате такой-то.. (как в эдите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); После чего появляется сообщение 1184431. Но если курсор навести прямо на точку 1067, 624 то оба варианта покажут 1381841, хотя не обязательно на ту точку наводить, во втором случает такой результат будет если просто навести на ту кнопку.. Ниче не понимаю.. Последний раз редактировалось nikki4, 13.04.2010 в 00:35. |
#2
|
|||
|
|||
![]() попробовал сделать еще так:
сначала кнопка установления координат и нахождения цвета в этих точках и записывания в эдиты: Код:
procedure TForm1.Button5Click(Sender: TObject); begin showmessage (' Наведите курсор на ... и нажмите Enter'); GetCursorPos (mish); edit8.text:=inttostr(mish.X); edit9.Text:=inttostr(mish.Y); Edit12.Text:=IntToStr(GetPixel(GetDC(0), mish.X, mish.Y)); end; получаются некоторые значения: 1068, 621 и 2963691 Еще сделал кнопку: Код:
procedure TForm1.Button8Click(Sender: TObject); begin showmessage (inttostr(GetPixel(GetDC(0),strtoint(edit8.text),strtoint(edit9.text)))); end; Которая теоретически должна показывать тоже, что и в эдите12, но показывает другое:2502596 причем куда бы не навел, кроме той области с кнопкой, там в той области показывает 2963691, даже если цвета там совсем разные.. |
#3
|
||||
|
||||
![]() |