sooo. . .
Ich gehöre eigentlich bestraft für diesen Fehler.
Habe gestern abend noch den Fehler gefunden, war aber zu Faul noch ein
DP EIntrag zu schreiben ...
ALT:
Delphi-Quellcode:
constructor TStadt.create(pname: string; pNachbarn: allNachbarn);
var
I: integer;
begin
self.Fname := pname;
self.Nachbarn := pNachbarn;
for I := 0 to length(pNachbarn) do
Nachbarn[I].besucht := False;
end;
NEU:
Delphi-Quellcode:
constructor TStadt.create(pname: string; pNachbarn: allNachbarn);
var
I: integer;
begin
self.Fname := pname;
self.Nachbarn := pNachbarn;
for I := 0 to length(pNachbarn) - 1 do // Hier ist der Unterschied ...
Nachbarn[I].besucht := False;
end;
Im Constructor von der Stadt wurde die Nachbarn in einem Array übergeben, ich laufe danach mit einer FOR Schleife alle Nachbarn durch und sagte ihn, das diese noch nicht besucht sind.
Hier haben wir wieder das alte Problem mit dem Index und der Anzahl bzw. Länge ...
die Länge gibt 1 zurück.
wir machen den durchlauf auf Index 0, da ist ein Wert.
dann auf index 1, hier ist aber nichts hinterlegt.
Es kamm wohl keine Out of range execption sondern er versucht wohl im Arbeitsspeicher irgendwas zu überschreiben, auf eine NIL adresse . . .
Hierbei hat er wohl auch die Instanz von der KLasse verloren . . .
Mysteriös ?!
danke an euch, für die schnelle Hilfe
besonderen dank an baumina
dank dir hab ich mir nochmal den construcotr angeschaut ^^