Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

AW: hat TStringgrig eine innere Größenbeschränkung?

  Alt 16. Sep 2010, 18:02
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.
Andreas
  Mit Zitat antworten Zitat