Hallo darthdungeon und willkommen in der
DP!
Ich weiß leider nicht genau wie du es lösen willst. Ich habe hier mal einen Ansatz für dich.
Der Type- und Var-Abschnitt sieht meiner Meinung nach so aus:
Delphi-Quellcode:
type
// TPoint existiert bereits in der Unit Types, kann also weggelassen werden falls, du
// aus TPoints TPoint machst!
// Einen Zeiger auf einen TPoint definieren.
PPoint = ^TPoint;
// Zeiger auf eine Kante.
PEdge = ^TEdge;
// Kante definieren.
TEdge =
record
point1, point2: PPoint;
// Und hier den Zeiger benutzen.
next_edge: PEdge;
end;
// TEdge
TArea =
record
edge: TEdge;
end;
// TArea
...
var
area_list:
array of TArea;
edge_list:
array of TEdge;
point_list:
array of TPoint;
Die Implementierung wird dann wie folgt angepasst:
Delphi-Quellcode:
// Bleibt wie gehabt.
point_list[0].x := 100;
point_list[0].y := 100;
...
// Hier muss man Delphi nun sagen, dass man einen Zeiger auf einen TPoint hat.
edge_list[0].point1 := @point_list[0];
edge_list[0].point2 := @point_list[1];
...
// So wird der Zeiger initialisiert.
edge_list[0].next_edge := @edge_list[1];
// Zum Zugriff auf die Zeiger musst du dann später so vorgehen.
ShowMessage( IntToStr( edge_list[0].point1^.x ));
ShowMessage( IntToStr( edge_list[0].next_edge^.point1^.x ));
Achtung: Ich hab das leider nicht getestet!
Gruß,
pszopp
www.pstipp.de | Tippseite zur Formel 1 und Fußball WM/EM - kostenlos und Just-For-Fun