1.) Ein Break bei zwei FOR Schleifen verlässt nur die innere Schleife
2.) Du musst nach Punkten suchen nicht nach Integern
3.) Rückwärtsschleifen funktionieren nur mit DOWNTO
For i := 100 to 0 wird nie durchlaufen
4.) Image3 soll ja ein Differenzbild enthalten hier interessiert nur ob ein Punkt einen Wert >= 10 hat, der Nachbarpunkt interssiert nicht
Deine Suchroutine sollte eher so aussehen
Delphi-Quellcode:
var
x,y:Integer;
P1,P2:TPoint;
begin
P1.X := -1;
for y:=0 to image3.Height-1 do
begin
for x:=1 to image3.width-1 do
begin
if (((image3.Canvas.pixels[x,y]) and 255) > 10) then
begin
P1.X := x;
p1.Y := y;
break;
end;
end;
if P1.X > 0 then Break;
end;
P2.X := -1;
for y := image3.Height-1 Downto 0 do
begin
for x:= image3.width-1 Downto 0 do
begin
if (((image3.Canvas.pixels[x,y]) and 255) > 10) then
begin
P2.X := x;
P2.Y := y;
break;
end;
end;
if P2.X > 0 then Break;
end;
....
....
// und noch zwei Punkte ....