Delphi speichert sich die beiden Werte am Anfang der FOR-Schleifen, so daß du da keine Extravariablen (x_achse und y_achse) brauchst.
Aber mal eine andere Frage:
Warum ist Eingabe_Reaktion keine Methode der Form1, obwohl darin ausschließlich darauf zugegriffen wird?
Der grundsätzliche Fehler war übrigens:
StringGrid1.cells[x,y]
[1], denn rate mal was passiert, wenn kein String mit mindestens einem Zechen darin ist.
Das Stringgrid selber gibt zum Glück keinen Fehler, wenn man auf nichtexistierende Felder zugreift, sondern gibt stattdessen nur einen Leer-String zurück.
Zitat:
wenn ich den Button zum Start drücke
Den Debugger solltest du mal kennenlernen.
Der zeigt dir wo es knallt.
Und in diesem Fall hätte man auch mal die Bereichsprüfung in den Projektoptionen aktivieren können.
Denn diese baut Prüfcodes ein, wovon Einer z.B. prüft, ob man auf ein nichtexistierendes Zeichen eines Strings zugreifen will, was bei dir ja geknallt hatte.
Das Selbe tritt auch auf, wenn in Edit1 nicht mindestens 5 Zeichen drin sind, da du dort auch einfach so ungeprüft drauf zugreifst.
Dann mußt du lernen, daß praktisch alles bei 0 anfängt mit Zählen (Listen und dynamische Arrays),
außer dem String, welcher kompatibilitätsbedingt bei 1 anfängt.
for x := 1 to x_Achse - 1 do
Info: Der ShortString hatte in Index 0 das Längenbyte und ab 1 die Zeichen, was in die "neueren" LongStrings (AnsiString, UnicodeString und Co.), sowie den WideString übernommen wurde.
(also praktisch fingen Strings früher auch mal bei 0 an, wenn man die Indizierung genau nimmt)