![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Перебирается каждый пиксель на картинке (на картинке пять точек) как только находит первый нужный пиксель цикл останавливается, начинается второй цикл нахождения второй точки... но он никак не хочет запускаться, первую находит и всё... я в панике, помогите пожалуйста, умоляю...
Код:
procedure TMainForm.Timer1Timer(Sender: TObject);
var
n,s,st,i,s2,st2,i2, n2:Integer;
b,z:Cardinal;
begin
SampleGrabber1.GetBitmap(Image.Picture.Bitmap);
s:=119;
st:=159;
for i:=0 to s do
for n:=0 to st do
begin
b:= GetYValue(image.Picture.Bitmap.Canvas.Pixels[n,i]);
if b>110 then
begin
Label1.Caption:='x='+IntToStr(n);
Label2.Caption:='y='+IntToStr(i);
exit;
end;
end;
//первую точку нашли, ищем вторую... не РАБОТАЕТ МХА-А-А
s2:=119;
st2:=n+20;
for i2:=i+10 to s2 do
for n2:=n-20 to st2 do
begin
z:= GetYValue(image.Picture.Bitmap.Canvas.Pixels[n2,i2]);
if z>110 then
begin
Label3.Caption:='x='+IntToStr(n2);
Label4.Caption:='y='+IntToStr(i2);
exit;
end;
end;
end;
|
|
#2
|
||||
|
||||
|
Убери
Код:
... ... EXIT; ... ... оно останавливает действие... |
|
#3
|
|||
|
|||
|
но тогда будет искать последнюю крайнюю точку... а мне первый цикл нужно сразу остановаить как только первый пиксель появиться. Цикл останавливал другим способом без exit;
s:=i; st:=n; непомогло... и кстати если просто exit; убрать второй цикл всё равно не запускается( Последний раз редактировалось EvgenDRV, 02.11.2010 в 17:48. |
|
#4
|
||||
|
||||
|
Вместо Exit - Break попробуй, т.к. Exit выйдет из всех циклов.
|
|
#5
|
||||
|
||||
|
exit- выходит из процедуры а break - прекращает цикл
|