AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid Zeilen füllen

Ein Thema von Ego · begonnen am 1. Dez 2012 · letzter Beitrag vom 3. Dez 2012
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#1

AW: Stringgrid Zeilen füllen

  Alt 2. Dez 2012, 08:52
Wenn man sich die (versteckte) Funktion "DeleteRow" vom StringGrid anschaut, wird beim löschen nur RowCount reduziert, das würde dafür sprechen, dass es eine feste Anzahl vorhandener Zeilen gibt. Bin deswegen schon mal auf die Schnauze gefallen.

In diesem Sinne möcht ich auch mal auf diesen Hack hinweisen: und zwar bei den Schweizern!

Nichts desto trotz find ich es richtiger wenn man explizit sagt wieviele Zeilen dass man braucht, sprich RowCount dementsprechend hochzählt, bzw. von vorn hinein, wenn man es weiss, bereits auf die gewünschte Anzahl setzt (inkl. FixRows)
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Stringgrid Zeilen füllen

  Alt 2. Dez 2012, 10:17
Hallo,

ich würde erst mal durch das Array gehen,
um die benötigte Zeilenzahl zu ermitteln und zu setzen.

Und ja, die Zeilenzahl erhöht sich nicht automatisch
und muss explizit gesetzt werden.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Stringgrid Zeilen füllen

  Alt 2. Dez 2012, 11:13
@hoika
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Stringgrid Zeilen füllen

  Alt 2. Dez 2012, 11:52
Hallo,

was das ganze so gemein macht:
Das Grid entfernt Zeilen nicht direkt, wenn man RowCount verringert.
Sie werden nur nicht angezeigt.
Der alte Inhalt ist noch da.
Vergrößert man RowCount wieder, ist der alte Inhalt
wieder da, ob das gewollt, sie dahingestellt.

Das läuft alles unter den Stichwort "Speicheroptimierung".


Heiko
Heiko
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#5

AW: Stringgrid Zeilen füllen

  Alt 2. Dez 2012, 12:21
Nun, soweit ich weiß sind in beide Richtigen TStringLists oder TStrings. Man kann also füllen bis an die grenze. Das andere ist der sichtbare Bereich.
  Mit Zitat antworten Zitat
Ego

Registriert seit: 8. Feb 2007
8 Beiträge
 
#6

AW: Stringgrid Zeilen füllen

  Alt 2. Dez 2012, 19:57
@hoika:
Nein, ich halte es nicht für sinnvoll, zweimal das Array zu durchlaufen. Ist nicht gerade optimal. Jedesmal rowcount um einen erhöhen, wenn es gebraucht wird, klappt besser.
Das gemeine an der Sache ist, daß bei mir in den Probläufen mit der ersten Methode alles klappte, als ich immer nur relativ kurze Arrays mit ca. 10 bis 20 Komponenten benutzte(rowcount wird also 'automatisch' erhöht (bzw. ist vorgegeben) bis wohl 50.)
Deswegen nahm ich an, daß es immer gehen würde. Dann, im Ernstfall mit langen Arrays (> 200) klappte es eben nicht mehr, bei ca. 50 Einträgen war Schluß. Ein ganz böse Falle! Sinnvoller wäre es, wenn bei meiner ersten Methode eine - und nur ein - Zeile gefüllt würde. Dann wüßte man gleich Bescheid.

Recht hast du mit deinem zweiten Eintrag. Das ist auch so eine üble Sache beim Stringgrid, auf die ich schon mal reingefallen bin.

@ helmi:
Danke für den Hinweis, sehr interessant!
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Stringgrid Zeilen füllen

  Alt 2. Dez 2012, 20:00
setz halt RowCount := high(xyarray) + FixRows Dann braucht das Array nur einmal durchlaufen
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<

Geändert von Helmi ( 2. Dez 2012 um 20:02 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz