Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - StringGrid Zeilen raus löschen. Mein Weg funktioniert nicht.
20:30 - Mo 31.12.12 19:13
Titel: StringGrid Zeilen raus löschen. Mein Weg funktioniert nicht.
Also, habe folgenden Quellcode:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| type TMeinSG = class(TStringGrid);
procedure TMain.Button1Click(Sender: TObject); var i: integer; begin for i := 1 to StrinGrid1.RowCount do begin if pos(ED_Suche.Text, StrinGrid1.Cells[1,i]) = 0 then DeleteRow(i); end; end;
procedure TMain.DeleteRow(ARow: Integer); begin with TMeinSG(StrinGrid1) do DeleteRow(ARow); end; |
Man soll im Stringgrid einen String suchen. Wenn dieser nicht gefunden wird, soll die entsprechende Zeile rausgelöscht werden, so dass nur die "richtigen" noch da sind.
Blöd nur, dass meins nicht will. Hilfe wäre großartig. ;)
hansa - Mo 31.12.12 19:37
20:30 hat folgendes geschrieben : |
Blöd nur, dass meins nicht will. Hilfe wäre großartig. ;) |
Auch blöd, wenn man die Fehlermeldung verschweigt. Oder aber, nicht sagt, dofern keine erscheint und nur nicht gemacht wird, wie gewünscht. Insofern : blöd. :mrgreen:
bummi - Mo 31.12.12 20:57
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| type THackGrid=Class(TCustomGrid) procedure DeleteRow(ARow: Longint); end;
procedure THackGrid.DeleteRow(ARow: Integer); begin inherited; end;
Procedure DeleteRow(sg:TStringGrid;Index:Integer); begin THackGrid(sg).DeleteRow(index); end;
procedure TForm1.Button1Click(Sender: TObject); var i: integer; begin for i := StringGrid1.RowCount - 1 DownTo 1 do begin if pos(ED_Suche.Text, StringGrid1.Cells[1,i]) = 1 then DeleteRow(StringGrid1,i); end; end;
procedure TForm1.FormCreate(Sender: TObject); begin ReportMemoryLeaksOnShutDown := true; end; |
20:30 - Mo 31.12.12 22:12
Eine Fehlermeldung gabs nicht... Höchstens eine unvorhersebare Ausführung.
Es wurden alle bis auf die fixed gelöscht.
Danke für die Antwort! Werde ich mir noch anschauen und ausprobieren (Sieht etwas komisch aus..?)... Gibt es auch eine Erkärung, für diejenigen, die das selbe Problem haben (/werden). Wäre nett. ;)
EDIT:
So mal getestet. Nachdem ich das befragte Ergebnis von pos auf 0 gesetzt habe, funktioniert alles. Man sollte noch auf Groß und Kleinschreibung achten...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!