So, ich habe das Konzept verworfen und ein neues gemacht, dabei habe ich aber auch wieder ein Problem
Ich habe ein Klasse TFeld und drei Unterklassen TMittelFeld, THauptFeld und TKindFeld
Delphi-Quellcode:
TFeld = class(Tobject)
FKoordinate: TPunkt;
FFarbe: integer;
image: Timage;
constructor create;
end;
TKindFeld = class(TFeld)
FNextKindFeld: TKindFeld;
FLetzter: boolean;
procedure inititialisiere(Ader,Ebene,Index: Integer; Letzter: Boolean);
end;
THauptFeld = class(TFeld)
FKindFeld: TKindFeld;
FNextHauptFeld: THauptFeld;
FLetzter: boolean;
procedure initialisiere(Ader,Ebene: integer; Letzter: Boolean);
end;
TMittelFeld = class(TFeld)
FHauptFelder: array[1..6] of THauptFeld;
procedure initialisiere;
end;
Die Prozedur TMittelFeld.initialisiere erstellt ein Feld über create, welches die Mitte darstellt
und anschließend 6 Felder vom Typ THauptFeld über die prozedur THauptFeld.initialisiere, die im array FHauptFelder gespeichert sind.
Das Problem ist, dass die Variable
Mitte: TMittelFeld;
nach der Prozedur
Mitte.initialisiere
wieder auf nil zeigt, nur in der Prozedur selbst kann ich auf sie zufreifen, und wenn die Prozedur fertig ist, und ich darauf zugreifen will, kommt die Fehlermeldung
"Zugriffsverletzung"
da Mitte wieder den Wert "nil" hat.
Wie kriege ich es hin, dass die variable auch nach der initialisierung immer noch den Wert hat, und nicht wieder auf nil zeigt?
vielen dank schonmal
MFG Richard