Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - bekomme die Schleife nicht hin


elduchte - Mo 26.06.06 16:13
Titel: bekomme die Schleife nicht hin
Hallo Leute,

ich probiere schon seit geraumer Zeit eine Schleife zu basteln, die folgendes erledigt:

Ich habe ein Array

verlauf_D: [2,1,13]

Der Index dieses Arrays heißt Anzahl_Stationen_D, das heißt, der höchste Wert beträgt in diesem Bsp 3. In diesem Array befinden sich meine Knoten IDs.

Das heißt Knoten[2] (also ein weiteres Array) hat bestimmte Positionen.

Nun möchte ich eine Linie zeichnen von Knoten[2] über Knoten[1] zu Knoten[13].


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
 
 for i := 1 to Anzahl_Stationen_D  do
    begin
      ID := verlauf_D[i];
      aPoint[0].X := round ((Knoten[ID].xpos) * m_FaktorX);
      aPoint[0].Y := round ((m_maxy - Knoten[ID].ypos) * m_FaktorY);

      aPoint[1].X := round ((Knoten[ID].xpos) * m_FaktorX);
      aPoint[1].Y := round ((m_maxy - Knoten[ID].ypos) * m_FaktorY);

      DrawStrasse(PB_Dijkstra.Canvas,aPoint);
    end;


Mit dem o. a. Source klappt es wenn ich feste KnotenIDs eingebe (habe ich ausprobiert). Wie muss ich meine Schleife basteln, damit erst eine Verbindung von Knoten[2] zu Knoten[1] und dann zu Knoten[13] gezeichnet wird? Ich bekomme das einfach nicht.

Vielen Dank für die Hilfe.


azubi_20 - Mo 26.06.06 16:26

Ich muss gestehen ich blick da nicht ganz durch, aber vielleicht hat es was damit zu tun das du an der Stelle


Delphi-Quelltext
1:
for i := 1 to Anzahl_Stationen_D  do                    

nicht auf die richtigen Indexe zugreifst.

Probier mal stattdessen


Delphi-Quelltext
1:
for i := 0 to Anzahl_Stationen_D-1  do                    


elduchte - Mo 26.06.06 16:29

Hallo,
hatte einen Fehler in meinem geposteten Sourcecode.... trotzdem bekomme ich die Schleife nicht hin....


mkinzler - Mo 26.06.06 18:03

Zitat:
der höchste Wert beträgt in diesem Bsp 3.
Nein 2.
Überprüfe mal ob die Knoten_IDs auch alle stimmen. ( 3.Element hat Index 2 usw.)


elduchte - Di 27.06.06 11:22

Hallo,
die IDs stimmen alle, habe es jetzt geschafft, habe einfach einen weiteren Zähler mit eingebaut.

Danke für die Hilfe.