Delphi-Quellcode:
for i:=0 to maxint do
stringgrid1.cells[0,i]:=inttohex(i,8);
Das läuft, wie zu erwarten, vor die Speicherwand
maxint ist gleich 2147483647
Das ist eine völlig andere Größenordnung als ~300000.
Zitat von
p80286:
kann ich Rowcount auch erst zum bitteren Ende setzen?
Die
OH war da nicht so eindeutig, und die Praxis schein nicht dagegen zu sprechen.
Nein, RowCount muss gesetzt werden bevor die Zellen mit Daten befüllt werden.
Also ein Stringgrid mit 300000 Zeilen ist eigentlich "gar kein Problem":
Delphi-Quellcode:
var
i : Integer;
begin
StringGrid1.RowCount := 300000; // VORHER setzen !
for i := 1 to StringGrid1.RowCount-1 do
StringGrid1.Cells[1, i] := IntToStr(i);
end;
Die Schleife braucht zwar ~4 Minuten bis sie fertig ist,
aber Anzeigen und Scrollen funktioniert.
Interessanterweise dauert das Beenden des Programms ca 1,5 Minuten;
im Hintergrund werden wohl einige Hunderttausende Windows-Botschaften verschickt
und das braucht Zeit.