Hi,
ich habe eine 2D-Karte mit X*Y Feldern auf der Karte. Ich benutze hierbei ein dymnamisches Array, damit der User die Anzahl der Felder der X- oder Y-Achse wechseln kann. Ich habe das wiefolgt gemacht:
Delphi-Quellcode:
type
TFeldDaten = record
FeldArt : Integer;
end;
...
type
TFelder = record
FeldX, FeldY : Integer;
Felder : Array of TFeldDaten;
end;
...
Isokarte : TFelder;
...
SetLength(Isokarte.Felder, MaxX*MaxY);
Wenn ich nun die Anzahl der Felder verändere und es statt 5x5 nur noch 4x4 Felder gibt, motzt Delphi rum und zeigt mir eine ungültige Zeigeroperation an. Wenn ich die Anzahl auf 7x7 erhöhe gibt es keine Probleme. Ich rufe SetLength immer dann auf, wenn sich die Größe der X- oder Y-Achse verändert. Wo liegt das Problem?