Zitat:
Delphi-Quellcode:
function checkIfConnected(x,y:integer):boolean;
begin
index:=0;
while (index<array_length) and (Result=false) do
begin
Result:= (x >= Coordinates[index].x1_coor) AND
(y >= Coordinates[index].y1_coor) AND (x<= Coordinates[index].x2_coor)
AND (y<= Coordinates[index].y2_coor);
inc(index);
end;
end;
Wo ist index deklariert? (sag aber bitte nicht "global" oder sowas)
Und du mußt Result auch noch initialisieren, denn so ist er quasi zu Anfang mit einem Zufallswert belegt.
Delphi-Quellcode:
function checkIfConnected(x,y:integer):boolean;
var
index: Integer;
begin
Result:=False;
index:=0;
while (index<array_length) and (Result=false) do
begin
Result:= (x >= Coordinates[index].x1_coor) AND
(y >= Coordinates[index].y1_coor) AND (x<= Coordinates[index].x2_coor)
AND (y<= Coordinates[index].y2_coor);
inc(index);
end;
end;
Delphi-Quellcode:
function checkIfConnected(x,y:integer):boolean;
var
index: Integer;
begin
Result:=False;
for index := 0 to array_length - 1 do
begin
if (x >= Coordinates[index].x1_coor) AND (y >= Coordinates[index].y1_coor)
AND (x<= Coordinates[index].x2_coor) AND (y<= Coordinates[index].y2_coor) then
begin
Result := True;
Break;
end;
end;
end;
oder gleich ein paar neuere Features nutzen, also wenn du die Koordinaten auch gleich/zusätzlich als
coor: TRect
anbietest.
Delphi-Quellcode:
function checkIfConnected(x, y: Integer): Boolean;
var
i: Integer;
begin
for i := array_length - 1 downto 0 do
if Coordinates[i].coor.Contains(Point(x, y)) then
Exit(True);
Result := False;
end;
function checkIfConnected(p: TPoint): Boolean;
var
i: Integer;
begin
for i := array_length - 1 downto 0 do
if Coordinates[i].coor.Contains(p) then
Exit(True);
Result := False;
end;
prozedual (alt) /
oop-iger (neu): :
PtInRect /
TRect.Contains
PtInCircle
Nja, und daß "Listen" auch einige Vorteile haben, gegenüber "einfachen" Arrays, braucht man ja nicht mehr zu erwähnen.