![]() |
Zeilenbereich aus einer StringGrid entfernen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo liebe Delphianer,
ich habe ein klitzekleines Problem mit meiner StringGrid, das wie folgt aussieht: In meiner StringGrid befinden sich verschiedene Einträge, die in der ersten Spalte nummeriert sind. (siehe Anhang) Jetzt möchte ich, dass es für den Benutzer möglich ist, einzelne Zeilen aus der StringGrid zulöschen. Da ich aber gerne die Nummerrierung in der 1. Spalte der einzelnen Datensätze beibehalten möchte, sollen nur die Informationen hinter der Nummer z.B. "2" (in der 2. Zeile) gelöscht werden und automatisch die Einträge hinter der Nummer z.B. "3" (in der 3. Zeile) hinter die Nummer 2 "rutschen". Die Nummer "3" soll dann natürlich verschwinden, da hinter ihr kein Eintrag steht. --> Veranschaulicht ist das auch noch einmal im Anhang Ich weiß nicht ob das ein sehr schwieriges Unterfangen ist, was ich mir da ausgedacht habe, aber ich wollte einfach mal anfragen, ob mir dort jemand vllt. einen Ansatz geben könnte, um das Problem zu lösen. Herzlichsten Dank schon einmal im voraus.:) |
Re: Zeilenbereich aus einer StringGrid entfernen
Hat keiner einen kleinen Tipp für mich, oder habe ich mein Problem zu kompliziert erklärt?:/
Würde mich wirklich über jede kleine Hilfe riesig freuen! |
Re: Zeilenbereich aus einer StringGrid entfernen
Der Textinhalt der 1.Spalte ist ja immer die Nummer der entsprechenden Zeile, also
Delphi-Quellcode:
Und die OH gibt
StringGrid1.cells[0,ZeilenNummer]:=IntToStr(ZeilenNummer+1); //da von 0..rowcount-1
Delphi-Quellcode:
zum löschen, sowie
StringGrid1.rows[NummerDerLöschZeile].clear
Delphi-Quellcode:
zum kopieren her. (Musst dann aber noch StringGrid1.cells[1,ZeilenNummer] aktualisieren)
StringGrid1.rows[NummerDerLöschZeile-1]:=StringGrid1.rows[NummerDerLöschZeile];
|
Re: Zeilenbereich aus einer StringGrid entfernen
zwei schleifen
- einmal i+1 bis Zeilenanzahl-1 (Y) - und Spalte 1 bis Spaltenanzahl-1 (X) i = zu löschende Zeile Und dabei kopierst du die Inhalte jeweiles um eine Zeile nach oben, ab der Zeile unter/nach der zu löschenden Zeile. Kopiert wird alles außer der ersten Spalte, somit bleibt diese Nummerierung erhalten. Oder du kopierst alles und baust dann die Nummerierung neu auf. Nach dem Kopieren wird dann die letze Zeile entfernt. |
Re: Zeilenbereich aus einer StringGrid entfernen
hm, wenn ich dich richtig verstanden habe, würde ich einfach neu nummerieren....
vielleicht hilft dir das:
Delphi-Quellcode:
//--------prozedur für zeilennummern aktualisieren ----------------------------- procedure tform2.stringgridRowNumber (stringgrid: tstringgrid); var i: integer; begin For i := 0 to StringGrid.rowCount - 1 do StringGrid.Cells[0,i]:= inttostr(i); // zeilennumern anzeigen StringGrid.Cells[0,0]:= inttostr(StringGrid.rowCount - 1)// zeilensumme anzeigen end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz