Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Begrenzung auf die Elementenanzahl im StringGrid? (https://www.delphipraxis.net/104212-begrenzung-auf-die-elementenanzahl-im-stringgrid.html)

Almidagu 29. Nov 2007 10:37


Begrenzung auf die Elementenanzahl im StringGrid?
 
Guten Tag,

eine Frage. Ich arbeite mit den großen Datenmengen, die in StringGrid angezeigt werden sollen. Gibt es eine Begrenzung auf die Elementenanzahl im StringGrid?

Für die Hilfe, Links wäre ich sehr dankbar.

Grüße
Almidagu

marabu 29. Nov 2007 10:59

Re: Begrenzung auf die Elementenanzahl im StringGrid?
 
Hallo,

man könnte von "virtual unlimited" sprechen - eher geht dir der Speicher aus, als dass du an implementierungsbedingte Grenzen von TStringGrid stoßen wirst.

Du solltest vielleicht darüber nachdenken, ob du deine Daten nicht lieber nur zeichnest (OnDraw...). Bei richtig großen Datenmengen möchte der Benutzer deines Programms nicht ewig warten müssen, bis dein Grid gefüllt oder gespeichert ist.

Grüße vom marabu

hoika 29. Nov 2007 11:02

Re: Begrenzung auf die Elementenanzahl im StringGrid?
 
Hallo,

Col und Row sind Integer.
Also 4 Mrd. Cols / 4 Mrd. Rows.

Aber wie schon mein Vorgänger sagte,
dir geht eher der Speicher aus beim StringGrid
(jeder Cells[] wird ja als String gespeichert).

Abhilfe1: DrawGrid.
Anhilfe2: nicht alles anzeigen


Heiko

Almidagu 29. Nov 2007 12:33

Re: Begrenzung auf die Elementenanzahl im StringGrid?
 
Hallo marabu und Heiko,

zuerst vielen Dank für die Antworten. Dass StringGrid keine implementierungsbedingten Grenzen hat, habe ich gedacht. Ich meinte, dass es einige Eigenschaften oder globale Variablen gibt, die notwendigen Speicher beschreiben und ein Limit berechnen können, oder etwas ähnliches, wie Capacity bei TList.

Sie haben meine Vermutungen (weil ich kein richtiger Expert bin) bestätigt, dass ich alles selber programmieren muss.:) Die Richtungen haben Sie mir gegeben.

Viele Grüße
Almidagu

Deep-Sea 29. Nov 2007 12:38

Re: Begrenzung auf die Elementenanzahl im StringGrid?
 
Zitat:

Zitat von Almidagu
Hallo marabu und Heiko,

zuerst vielen Dank für die Antworten. Dass StringGrid keine implementierungsbedingten Grenzen hat, habe ich gedacht. Ich meinte, dass es einige Eigenschaften oder globale Variablen gibt, die notwendigen Speicher beschreiben und ein Limit berechnen können, oder etwas ähnliches, wie Capacity bei TList.

Sie haben meine Vermutungen (weil ich kein richtiger Expert bin) bestätigt, dass ich alles selber programmieren muss.:) Die Richtungen haben Sie mir gegeben.

Viele Grüße
Almidagu

Das verwirrt mich ein wenig. Möchtest du nun ausrechnen, wie viel Speicher das Grid verbraucht, oder wie viel es verbrauchen könnte bevor der Arbeitsspeicher voll ist oder etwas ganz anderes? :gruebel:

Almidagu 29. Nov 2007 16:41

Re: Begrenzung auf die Elementenanzahl im StringGrid?
 
Hallo Deep-See,

es ist gute Frage. Nein, ich stelle mir vor, ein leeres StringGrid zu erstellen und abhängig von Scrolling entsprechende Zellen zu füllen. Ich kenne nicht alle Möglichkeiten, die in Delphi sind. Wenn das nicht klappt oder zu langsam für einen Anwender ist, dann werde ich andere Wege suchen.

Grüße
Almidagu

Deep-Sea 30. Nov 2007 07:11

Re: Begrenzung auf die Elementenanzahl im StringGrid?
 
Zitat:

Zitat von Almidagu
[...] und abhängig von Scrolling entsprechende Zellen zu füllen.

Sowas nennt sich "Virtual" und ist eig. die performanteste Methode (sofern du wahlfrei und schnell auf die Daten zugreifen kannst).
Jedoch glaube ich, dass ein StringGrid dies nicht unterstützt. Evtl. kannst du eine ListView verwenden. Ansonsten gibt es noch viele andere Komponenten (zB. VirtualTreeView) die so etwas können.

marabu 30. Nov 2007 08:39

Re: Begrenzung auf die Elementenanzahl im StringGrid?
 
Hallo,

ob virtuell die beste Bezeichnung für das Konzept ist, möchte ich jetzt nicht diskutieren. Ich unterscheide die Datenhaltung durch eine visuelle Komponente von einer externen Datenhaltung. Beim StringGrid kann ich Daten in den Zellen ablegen, kann es auch sein lassen. Mitunter mischt man beide Ansätze: In den Zellen stehen Daten, aber angezeigt werden ganz andere. Eigentlich ist es eine Entscheidung zwischen DrawGrid und StringGrid. Letzteres bringt eine intelligente Speicherverwaltung für Daten (Strings) mit, die ich manchmal gerne verwende. Weitere Infos dazu in einem anderen Thread.

Freundliche Grüße

Almidagu 30. Nov 2007 08:54

Re: Begrenzung auf die Elementenanzahl im StringGrid?
 
Guten Morgen und Danke für die Beratung.

Zitat:

Zitat von Deep-Sea
... sofern du wahlfrei und schnell auf die Daten zugreifen kannst

Richtig, das ist der Kern der Sache. Wie ich gesehen habe, hat StringGrid einige Eigenschaften, die man für meine vorgeschlagene Methode verwenden könnte. Ich werde später das prüfen. Ich werde auch über ListView und VirtualTreeView lesen, vielleicht passt besser ein von denen. Danke schon.

Grüße
Almidagu

P.S. Morgen marabu, danke schön. Gerade beim Absenden der Antwort kam Deine Post. Ich lese Dein Link und soll alles überlegen.
Grüße. Almidagu


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 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