Forum: Algorithmen, Datenstrukturen und Klassendesign
by Ego,
3. Dez 2012
Nein, das ist Platzverschwendung; z.B. Array > 200 und nur 15 Einträge werden gebraucht, da mache ich doch kein riesengroßes Stringgrid!
Das, was ich als zweite Methode angegeben habe, ist schon optimal. Mein Problem ist ja nicht: 'Wie mache ich das?' sondern: 'Wieso verhält sich Stringgrid so tückisch, daß Methode 1 teilweise (aber eben nur teilweise!) funktioniert?'
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Ego,
2. Dez 2012
@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...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Ego,
1. Dez 2012
@Helmi:
Den Verdacht habe ich auch: Stringgrid hat voreingestellt 50 Zeilen (möglicherweise habe ich mich um drei verzählt), wenn man mehr braucht, muß man sie explizit mit rowcount erzeugen.
@Bummi:
Zur Verdeutlichung habe ich etwas gekürzt. In meinem konkreten Fall werden nicht alle Arrayelemente übernommen, sondern nur bestimmte ausgewählt. Deswegen weiß ich vorher nicht, wieviele Zeilen...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Ego,
1. Dez 2012
Ich will aus einem Array mit ca. 100 Records ein Stringgrid füllen. Rowcount gebe ich mit 2 vor , da Fixedrows := 1
Wenn ich es so mache:
zeile := 0; tabelle.rowcount := 2;
for zaehler := low(xyarray) to high(xyarray) do
begin
inc(zeile);
tabelle.cells := xyarray.bezeichnung;
end;
tabelle.rowcount := length(xyarray);