AGB  ·  Datenschutz  ·  Impressum  







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

TStringGrid array

Ein Thema von GoTo0815 · begonnen am 13. Nov 2013 · letzter Beitrag vom 13. Nov 2013
Antwort Antwort
GoTo0815

Registriert seit: 18. Mai 2004
148 Beiträge
 
Delphi XE2 Professional
 
#1

TStringGrid array

  Alt 13. Nov 2013, 11:04
Guten Tag,

heute habe ich in einem Projekt von mir folgendes gefunden:

Delphi-Quellcode:
  myStringGrid.RowCount:= OtherStringGrid.RowCount; // beispielsweise ist aStringGrid.RowCount := 5;
  myStringGrid.Cells[0,OtherStringGrid.RowCount]:= 'bla bla bla'; // hier dürfte doch als Maximum nur Cells[0, 5-1] stehen oder???
Wieso kann ich ohne Fehlermeldung einer StringGrid-Zelle ohne Fehlermeldung einen Wert zuweisen, die Außerhalb liegt?
Ist das Array von TStringGrid größer als die Grenzen die durch RowCount und ColCount gesetzt werden?

Erst später folgt in meinem Code die Erhöhung des RowCounts von myStringGrid und tatsächlich ist der Wert 'bla bla bla' vorhanden.

Ist dieses verhalten ein Bug oder kann ich mich darauf verlassen und so mit sichtbaren und unsichtbaren Inhalten arbeiten.

Danke im Voraus und sorry, wenn das bereits irgendwo besprochen wurde. Habe es nicht gefunden.
In der Delphi Hilfe wird noch von einem RowHeights gesprochen. Konnte damit aber nichts anfangen.
Falls ich mal ein "DANKE" vergesse, hier schon mal eins im Voraus: Danke für Eure Zeit!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#2

AW: TStringGrid array

  Alt 13. Nov 2013, 11:16
Delphi-Quellcode:
procedure TStringGrid.SetCells(ACol, ARow: Integer; const Value: string);
begin
  TStringGridStrings(EnsureDataRow(ARow))[ACol] := Value; // <<<<<< EnsureDataRow
  EnsureColRow(ACol, True);
  EnsureColRow(ARow, False);
  Update(ACol, ARow);
end;
Und die StringList-Matrix, welche die Daten hält, muß nicht die selben Abmessungen haben, wie die angezeigten Spalten/Zeilen des Grids.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
GoTo0815

Registriert seit: 18. Mai 2004
148 Beiträge
 
Delphi XE2 Professional
 
#3

AW: TStringGrid array

  Alt 13. Nov 2013, 12:01
... Also nur um noch einmal deutlich zu machen, dass ich das auch korrekt verstanden habe.

Im Klartext:
Bei enem TStringGrid ist die Matrix dynamisch!?
RowCount und ColCount regulieren nur die Grenzen der Sichtbarkeit der Felder?!

Man lernt halt nie aus !!!
Falls ich mal ein "DANKE" vergesse, hier schon mal eins im Voraus: Danke für Eure Zeit!
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#4

AW: TStringGrid array

  Alt 13. Nov 2013, 14:15
Im Klartext:
Bei enem TStringGrid ist die Matrix dynamisch!?
RowCount und ColCount regulieren nur die Grenzen der Sichtbarkeit der Felder?!
Wußte ich auch nicht, da nie ausprobiert. Doch eben hab ich's mal kurz getestet und tatsächlich: Man kann in einem StringGrid Feldern, die nicht sichtbar sind, einen String zuweisen, ohne daß ein Laufzeitfehler entsteht. Macht man die unsichtbaren Zeilen und Spalten sichtbar, findet man dort die zuvor zugewiesenen Strings vor.
  Mit Zitat antworten Zitat
GoTo0815

Registriert seit: 18. Mai 2004
148 Beiträge
 
Delphi XE2 Professional
 
#5

AW: TStringGrid array

  Alt 13. Nov 2013, 15:40
andersherum also auch darauf achten, dass ein RowCount := Rowcount - 1 nicht die letzte Zeile inhaltlich löscht...
Falls ich mal ein "DANKE" vergesse, hier schon mal eins im Voraus: Danke für Eure Zeit!
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
668 Beiträge
 
Delphi 12 Athens
 
#6

AW: TStringGrid array

  Alt 13. Nov 2013, 15:42
Das kenne ich schon und habe es schon mal bewusst verwendet, wenn es darum ging, eine unbekannte, aber große Menge von Zeilen in ein Stringgrid zu laden: Erst die Cells[] füllen und ganz zum Schluss einmal RowCount setzen. Geht schneller als RowCount jedesmal nach dem Einlesen einer Zeile zu erhöhen.
  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 20:57 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