Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Zeilen im StringGrid löschen
sunday_2 - Fr 15.11.02 17:27
Titel: Zeilen im StringGrid löschen
Hi,
ist mir schon fast peinlich, aber wieso klappt das Löschen im StringGrid nicht. Habe folgendes eingegeben:
Quelltext
1: 2: 3:
| for i:=1 to sg_auswahl.RowCount-1 do begin sg_auswahl.Rows.Delete(1) |
Beim Löschen einer ComboBox funktioniert es ja auch mit.
Quelltext
1: 2:
| for i:=0 to 26 do ComboBox_zahlen.Items.Delete(0); |
(17.11.02 17:54 Tino) Titel geändert.
Keldorn - Fr 15.11.02 17:44
Hallo
überschreib besser den Zellinhalt
Mfg Frank
sunday_2 - Fr 15.11.02 18:02
Hi Kendorn
tolle Idee, :lol: nur leider brauch ich die Zeilen gelöscht. :(
Keldorn - Fr 15.11.02 18:05
wie meinst du mit gelöscht?
die vom ende, die in der mitte ?
ende: rowcount verkürzen
mitte: mit rows.assign die Zellen einzlen hochkopieren und zum schluß rowcount verkürzen
Frank
sunday_2 - Mo 18.11.02 10:05
Das hilft leider alles noch nicht so richtig.
Also: Ich habe ein StrigGrid, das der User füllt (mal 3 Zeilen, mal 12 Zeilen usw.) Wenn der User festgestellt hat, das er Fehler gemacht hat, soll er mittels eines Reset-Buttons alle Zeilen löschen und neu starten können. Habe im augenblick folgenden Code:
Quelltext
1: 2: 3: 4: 5:
| for i:=1 to sg_auswahl.RowCount-1 do begin sg_auswahl.Rows[i] := sg_auswahl.Rows[i + 1]; sg_auswahl.RowCount := sg_auswahl.RowCount - 1; sg_auswahl.Repaint; |
Die Zeilen werden dann auch anscheinend gelöscht, jedoch wenn ich eine neue Zeile hinzufüge, ist mindestens eine Zeile von den alten wieder da.
Keldorn - Mo 18.11.02 12:47
hallo
du hast das Beispiel nicht richtig verstanden:
Quelltext
1:
| sg_auswahl.RowCount := sg_auswahl.RowCount - 1; |
innerhalb der einer For-schleife veränderst du das Ende, hast glück, das hier kein Laufzeitfehler entsteht
innerhalb der schleife das grid neuzeichen ist totaler quark und außerdem brauchst du es nicht überhaupt nicht neuzeichnen lassen
Sorry, hab nich so verstanden, daß du das ganze Grid löschen willst, das obengenannte Code-bsp ist dafür ausgelegt, eine bestimmte Zeile im Grid zu löschen.
das könnte dir weiterhelfen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.Button1Click(Sender: TObject); Var acol,arow:integer; begin with sg_auswahl do begin //Zelleninhalt löschen for arow:=1 to rowcount-1 do for acol:=0 to colcount-1 do cells[acol,arow]:=''; //anzahl der Zeilen neu setzen, 1 Zeile bleibt immer stehen, sonst entstehen Probleme mit fixedrows RowCount:= 2; end; end; |
Du mußt den Code evtl. ein wenig anpassen, wenn du fixedrows/-cols hast
mfg Frank
sunday_2 - Mo 18.11.02 13:13
Hab den Fehler gefunden. Muß heißen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| for i:=1 to sg_auswahl.RowCount-1 do begin sg_auswahl.Rows[i].Clear; end; sg_auswahl.RowCount:=2; Zaehlwerk2:=1; // Globale Variable, die beim Füllen hochgezählt wird. sg_auswahl.Repaint; |
Trotzdem Danke
:lol:
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!