1. Editiere mal deinen Beitrag und ändere deine [ code ][ /code ]-tags in [ delphi ][ /delphi ]-tags (ohen die Leerzeichen natürlich)
2.
Zitat von
Yheeky:
SetLength(Isokarte.Felder, MaxX*MaxY);
Also MaxX und MaxY sind integers. Delphi multipliziert diese. bei 4x4 kommt da beispielsweise 16 raus. Das heißt du erhälst einen eindiemnsionalen Array von 0-15. Nicht, dass du denkst, dass der array mit 1 anfängt und du probierst in das 16 Element zu schreiben. Stoppe doch mal die Ausführung beim stelength (links auf den grauen Rand klicken, dann wird die Zeile rot, kompilieren, warten bis das Programm an der Stelle stoppt und dann mit F7 zeilenweise weiterausführen.)
Dann siehst du, ob es am setlength-Befehl liegt (ich kann mir das dann nämlcih nciht erklären...).
Ansonsten sollstest du darüber nachdenken, ob ein 2D-Array bei einer 2D Karte nicht angenehmer ist. den musst du so deklarieren:
Delphi-Quellcode:
type
TFelder = record
FeldX, FeldY : Integer;
Felder : Array of Array of TFeldDaten;
end;
also einfach nur ein Array of Array...
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.
Have a lot of fun!