Einzelnen Beitrag anzeigen

BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#6

AW: Lazarus: StringGrid.RowCount zur Laufzeit erhöhen

  Alt 16. Feb 2015, 22:40
Moin Bernhard,

Delphi-Quellcode:
StringGrid1.RowCount:=sl.count; //funktioniert anscheinend nicht
    for i := 0 to sl.count-1 do
        begin
         StringGrid1.Rows[i+1].StrictDelimiter := True;
         StringGrid1.Rows[i+1].CommaText:=sl.Strings[i];
   end;
Nehmen wir einmal an, dass Du 24 Eintrage in "sl" hast.

Also sl.Count ist 24.
In der 1. Anweisung setzt Du RowCount auf die Länge von sl (24).
Du hast also im Stringgrid Zeilen mit den Nummern 0 bis 23.

In der Schleife greifst Du aber auf die Zeilen 1 bis 24 zu.

Da es Zeile 24 nicht gibt ist der Index "Out of Range":
Code:
Exception class "EGridException" at $005666C9 with message "Index Out of range Cell[Col=0 Row=24]"
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.

Geändert von BadenPower (16. Feb 2015 um 22:42 Uhr)
  Mit Zitat antworten Zitat