Also bevor ich mich dazu äußere eine Frage: ist deine Formatierung ein Ding des Zufalls oder steckt da System dahinter?
Hier sind 6 Zeichen eingerückt
Delphi-Quellcode:
if Form1.stringgrid1.cells[Globala, Globalb]='1' then
begin
Hier zwei 2 Zeichen
Hier 4 Zeichen
Schwer zu entscheiden, oder?
also deinen Fehler kann ich nicht überprüfen, da da einiges fehlt, aber diese Zeile gefällt mir persönlich nicht so recht:
Delphi-Quellcode:
if (Form1.stringgrid1.cells[Globala+Globala1,Globalb+Globalb1]='2')or (Form1.stringgrid1.cells[Globala+Globala1,Globalb+Globalb1]='4') or(Globala+Globala1<0) or (Globala+Globala1>9) or (Globalb+Globalb1<0) or (Globalb+Globalb1>9) then // hier an dieser stelle kommt der error sobald globala oder globalb -1 oder kleiner ist..
//...
Was gefällt mir da nicht?
Delphi-Quellcode:
if (Form1.stringgrid1.cells[Globala+Globala1,Globalb+Globalb1]='2')or (Form1.stringgrid1.cells[Globala+Globala1,Globalb+Globalb1]='4') ...
//...
Zuerst greifst du anscheinend auf das StringGrid zu, per Zeilen- und Spaltenwert...
Delphi-Quellcode:
... or(Globala+Globala1<0) or (Globala+Globala1>9) or (Globalb+Globalb1<0) or (Globalb+Globalb1>9) then // hier an dieser stelle kommt der error sobald globala oder globalb -1 oder kleiner ist..
//...
... aber erst nach dem du zugegriffen hast, prüfst du ob die Werte ok sind.
Was hältst du davon zuerst zu prüfen ob die Werte ok sind, und dann erst auf das StringGrid zuzugreifen?
Etwa so (ungeprüft):
Delphi-Quellcode:
if NOT ((Globala+Globala1<0) or (Globala+Globala1>9) or (Globalb+Globalb1<0) or (Globalb+Globalb1>9)) then //ich denke NOT ist hier gewünscht
if (stringgrid1.cells[Globala+Globala1, Globalb+Globalb1] = '2') or (stringgrid1.cells[Globala+Globala1,Globalb+Globalb1]='4') then //
//...