Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#2

AW: Überschreitung des Maximums (-1) im stringgrid

  Alt 20. Dez 2013, 00:27
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]='1then
      begin
Hier zwei 2 Zeichen
Delphi-Quellcode:
          else
            begin
Hier 4 Zeichen
Delphi-Quellcode:
      else
          begin
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 //
//...
  Mit Zitat antworten Zitat