Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #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, хотя не обязательно на ту точку наводить, во втором случает такой результат будет если просто навести на ту кнопку.. Ниче не понимаю..

Последний раз редактировалось nikki4, 13.04.2010 в 00:35.
Ответить с цитированием
  #2  
Старый 13.04.2010, 12:24
nikki4 nikki4 вне форума
Прохожий
 
Регистрация: 07.04.2010
Сообщения: 10
Репутация: 10
По умолчанию

попробовал сделать еще так:


сначала кнопка установления координат и нахождения цвета в этих точках и записывания в эдиты:

Код:
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  
Старый 13.04.2010, 18:58
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

вот это подойдет
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:03.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025