![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
![]() Доброго дня товарищи.
Имеется две формы. В первой форрме происходит вот такое : Код:
form2.image1.canvas.brush.color := clGreen; form2.image1.canvas.rectangle(0,0,720,9); Однако когда я хочу на второй форме посчитать кол-во зеленых пикселей, то не получается. Например код в цикле : Код:
if image1.canvas.pixels[3,3] = clGreen then x := x + 1 ; |
#2
|
||||
|
||||
![]() Код:
if form2.image1.canvas.pixels[3,3] = clGreen then x := x + 1 ; Пишу программы за еду. __________________ |
#3
|
||||
|
||||
![]() Цитата:
Я пытаюс так : Код:
for x := 1 to 720 do if image1.canvas.pixels[x,3] = clGreen then y := y + 1; Этим кодом пытаюсь посчитать кол-во часов. 1 пиксель = 2 минуты. но это уже другая история) |
#4
|
|||
|
|||
![]() ну осталось только посмотреть отладчиком
Код:
var C:TColor; X,Y:Integer; Y:=0; for X:=1 to 720 do begin C:=form2.image1.canvas.pixels[X,3]; if C = clGreen then Y:=Y+1; end; выключить оптимизацию, сделать останов на строке 10 и посмотреть, чему равен C; |
#5
|
||||
|
||||
![]() Включил отладчик - меня просто убило.
Итак, нужное мне значение называется не clGreen , а $00008200. окей, хорошо, теперь начинается самое интересное )) Код Код:
if colortostring(image1.Canvas.Pixels[3,3]) = '$00008200' then application.MessageBox('',''); А в тем временем : Код:
label1.Caption := colortostring(image1.Canvas.Pixels[3,3]); if label1.Caption = '$00008200' then application.MessageBox('',''); Шо за бред? не хочется такой костыль втыкать в программу ************** З.ы. Попробовал делать как раньше - стер весь код и написал заново. в таком положении работает. Видать руки кривые : Код:
for x := 1 to 720 do if colortostring(image1.Canvas.Pixels[x,3]) = '$00008200' then label1.Caption := floattostr(strtofloat(label1.Caption) + 2); Последний раз редактировалось alexusankov, 01.02.2013 в 11:53. |
#6
|
||||
|
||||
![]() кошмар...
1. clGreen = TColor($008000); 2. ColorToString(clGreen) = "clGreen" 3. ColorToString($00008200) = $00008200 Пишу программы за еду. __________________ |
#7
|
||||
|
||||
![]() Колор видимо левый и не входит в перечень определенных констант, вот тебе и выдает шестнадцатиричное значение.
По Ctrl сходи в функцию, увидишь как работает. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |