Aber wieviel Speicher braucht eine Stringgrid, die eine Spaltenanzahl von 150000 hat. Kann ich das auch mit D4 schon abfragen?
Meinst du wirklich 150.000
Spalten? Oder nicht doch eher
Zeilen?
Mich würde – sollte es sich tatsächlich um Zeilen statt Spalten in dieser "Unzahl" handeln – vor allem interessieren, wie die Daten denn vorliegen. Werden die von einem Datenträger beim Programmstart eingelesen? Oder aus einer Datenbank geholt? Je nach Größe des Arbeitsspeichers und der Größe der jeweiligen Records passen schon ein paar Hunderttausend Datensätze in den Speicher. Am einfachsten wäre es dann wohl, sich einen entsprechenden Record zu basteln und ein dynamisches Array of MyRecord zu erzeugen, das die Daten beinhaltet. Noch besser allerdings wäre ein TObjectList (falls das mit deiner Delphi-Version bereits geht), denn damit sind dann auch Sortiermöglichkeiten gegeben. Die Sortierung fände dann in der Objektliste statt, das Stringgrid übernähme – so wie sich's gehört – lediglich die Darstellung.
Gehen wir davon aus, daß das StringGrid seine Größe mit der Formulargröße ändert, muß man natürlich die oben bereits angesprochene Seitengröße mit verändern. Das erfordert ein paar zusätzliche Algorithmen, ebenso wie die Darstellung nach einer Neusortierung.
Zu guter Letzt könnte man die Daten auch komplett in ein ClientDataset einlesen und über ein DBGrid anzeigen lassen.