AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Index überschreitet Maximum einer liste

Ein Thema von Octom · begonnen am 14. Nov 2013 · letzter Beitrag vom 14. Nov 2013
Antwort Antwort
Octom

Registriert seit: 14. Nov 2013
4 Beiträge
 
#1

Index überschreitet Maximum einer liste

  Alt 14. Nov 2013, 20:32
Delphi-Version: 5
Ich versuche gerade ein Programm zu schreiben, dass das 8-Damen Problem lösen soll. Dabei habe ich ein stringgrid(8x8) und alle leeren felder werden mit einer 0 versehen. Das feld mit der platzierten Dame kriegt ein @ und die Felder, die die Dame bedroht sollen mit einem # versehen werden. Horizontal und vertikal funktioniert zwar alles, aber wenn ich versuche die diagonalen einzutragen kommt die Meldung, dass der index das maximum der liste(-1) überschreitet.

Delphi-Quellcode:
for d:=0 to (Stringgrid1.colcount-1) do begin
  Stringgrid1.Cells[col,0+d]:='#';
  Stringgrid1.cells[col, row]:='@';
end;
for d:=0 to (Stringgrid1.colcount-1) do begin
  Stringgrid1.Cells[0+d,row]:='#';
  Stringgrid1.cells[col, row]:='@';
end;
for d:=0 to (Stringgrid1.colcount-1) do begin //notlösung
  Stringgrid1.Cells[col+d,row+d]:='#';
  Stringgrid1.cells[col, row]:='@';
end;
for d:=0 to (Stringgrid1.colcount-(Stringgrid1.colcount-col)) do begin
  Stringgrid1.Cells[col-d,row-d]:='#'; //notlösung
  Stringgrid1.cells[col, row]:='@';
Die ersten 3 schleifen funktionieren. die vierte funkioniert zwar manchmal, aber es kommt zu 100% zu einer fehlermeldung.

Ich programmier nicht sehr lange mit delphi, weshalb die frage wahrscheinlich eine banale antwort hat. ich komme aber nicht darauf.
Auch hab ich mich extra wegen dieser frage in diesem Forum angemeldet und es tut mir leid, falls ich irgendwas in der art des postens falsch gemacht habe

Geändert von Octom (14. Nov 2013 um 21:05 Uhr)
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#2

AW: Index überschreitet Maximum einer liste

  Alt 14. Nov 2013, 20:46
Hallo,

schau mal in der letzten for-Schleife in die Zeile Stringgrid1.Cells[col-d,row-d]:='#';
Wenn row >= d geht alles gut, gilt row < d dann scheppert es an der Stelle. Vielleicht mal mit einer if-Bedingung abfangen.

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Octom

Registriert seit: 14. Nov 2013
4 Beiträge
 
#3

AW: Index überschreitet Maximum einer liste

  Alt 14. Nov 2013, 21:10
Danke für die schnelle Hilfe! Hat auch gleich ein paar andere Probleme gelöst
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz