Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.157 Beiträge
 
Delphi 12 Athens
 
#9

AW: Dijkstra mittels Image Darstellen und Ecken + Kanten verknüpfen

  Alt 23. Jul 2012, 12:31
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): :
Delphi-Referenz durchsuchenPtInRect / Delphi-Referenz durchsuchenTRect.Contains
Delphi-Referenz durchsuchenPtInCircle

Nja, und daß "Listen" auch einige Vorteile haben, gegenüber "einfachen" Arrays, braucht man ja nicht mehr zu erwähnen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat