Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - StringGrid komplett löschen
rebesky - Di 08.04.03 14:17
Titel: StringGrid komplett löschen
Hallo User!
Wie kann ich (am betsen mit einem Befehl) den kompletten Inhalt jeder Zelle eines String-Grids löschen?
Vielen Dank im Voraus!
Björn Rebesky :D
Aya - Di 08.04.03 14:29
Hi,
ich kenne das StringGrid nicht, bzw benutze es nie.. abe gibt's da kein .Clear???
Au'revoir,
Aya~
UGrohne - Di 08.04.03 14:37
Ein Clear hab ich bisher leider auch nicht gefunden, ich hab mir dann halt eine Prozedur dazu geschrieben, der alle Zellen (also bis RowCoutn und ColumnCount) durchgegangen ist. Alternativ kannste auch RowCount und COlumnCount setzen und die restlichen sichtbaren Zellen nur löschen, die anderen werden ja dann auch nciht mehr angezeigt.
Gruß
ShadowCaster - Di 08.04.03 14:46
da gibt es allerdings ein Problem, wenn man nur den RowCount umsetzt. Wenn du z.B. Records mit Addobject an die Stringlist hängst, dann sind die Zeiger auf die Records weg wenn du den Rowcount umsetzt, aber die Records sind noch im Speicher und brauchen Speicherplatz.
Also wenn du nur Text im Stringrid hast, reicht es den Rowcount neu zu setzten. Wenn du aber Objekte dran hast, musst du die natürlich auch löschen. :wink:
rebesky - Di 08.04.03 14:47
...ja..ein Clear find ich auch nicht! Ist echt Mist! :twisted: Das mit der Prozedur hab ich alternativ auch schon gemacht - nur ist das grottenlangsam bei 2500x2500 Einträgen!
Das muß doch irgendwie einfacher gehen? :cry:
Vielleicht einfach Grid killen und ein neues leeres an der selben Stelle erstellen?
Gruß, :D
Björn
rebesky - Di 08.04.03 14:51
huhu!
ich habe dann noch folgendes versucht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| ... var myrect : TGridRect;
myRect.Left := 1; myRect.Top := 1; myRect.Right := Grid.ColCount; myRect.Bottom := Grid.RowCount; Grid.Selection := myRect; Grid.Selection := ????? (was muß hier hin?) |
Gibt es keine Möglichkeit eine Selection zu löschen? :?:
Gruß,
Björn
Moderiert von
Tino: Code-Tags hinzugefügt.
Moderiert von
Tino: Code- durch Delphi-Tags ersetzt.
ShadowCaster - Di 08.04.03 14:57
du meinst, einem Grid eine neue Selection zuzuweisen? Löschen hab ich noch nie gebraucht. Aber neu zuweisen geht so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var myrect : TGridRect;
myRect := StringGrid.Selection; myRect.Top := 3; StringGrid.Selection := myRect; |
vielleicht muss man allen Einträgen in myRect 0 zuweisen?
Moderiert von
Tino: Code- durch Delphi-Tags ersetzt.
acer - Do 21.04.05 14:09
Titel: lösung
Hi, ich arbeite schon was länger mitStringGrids und hab hier (unten) ne komplettlösung.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure ClearGrid(Grid :TStringGrid); var i : integer; begin i := 0; while i <> grid.Rowcount do begin grid.Rows[i].Clear; inc(i); end; grid.ColCount:=1; grid.RowCount:=1; end; |
Moderiert von
Tino: Beiträge vereint.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!