Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie kann ich Zelleninhalte wirklich löschen??? (https://www.delphipraxis.net/123817-wie-kann-ich-zelleninhalte-wirklich-loeschen.html)

mcfit 9. Nov 2008 14:12


Wie kann ich Zelleninhalte wirklich löschen???
 
Hi hab mal ne Frage und zwar wie kann ich ganz einfach den Zelleninhalt eines Stringgrid löschen?
Hab es erst mit row clear versucht aber das bringt mir nicht viel zwar sieht man den Inhalt nicht mehr aber neue Datein werden dann einfach unter den "gelöschten" Inhalten geschrieben anstatt darüber.

Und dann hab ich noch ne Frage zum Stringgrid und zwar habe ich eine Tabelle in der Werte addiert werden wenn ich jetzt welche lösche wird die Zahl nicht aktualisiert, wie kann ich das ändern? Also genauer ist das eine Preisliste und ich habe den
Gesamtbetrag in einem Label wiedergegeben. Wenn ich jetzt jedoch ein Produkt raus nehme bleibt der vorherige Preis stehen und wird nicht aktualisiert.


mfg

Forlan 9. Nov 2008 14:17

Re: Wie kann ich Zelleninhalte wirklich löschen???
 
zu Frage 1:
Delphi-Quellcode:
 StringGrid.Cells[x,y] := '';
[Edit] StringGrid.Cells... natürlich^^

mcfit 9. Nov 2008 16:08

Re: Wie kann ich Zelleninhalte wirklich löschen???
 
aber dann ist doch immer noch ne Lücke. Also ist ja kein unterschied zudem was ich vorher hatte

_frank_ 9. Nov 2008 16:16

Re: Wie kann ich Zelleninhalte wirklich löschen???
 
dann musst du den Text der nachfolgenden zellen manuell nach vorne/oben verschieben. das Stringgrid selbst besitzt die Fähigkeit "Löschen von Zellen" nicht, du kannst nur den Text löschen und die Anzahl der Zellen ändern.

mal folgendes Beispiel (ungetested) als Anregung...(kommt halt drauf an, in welche richtung verschoeben werden soll, wenn eine einzelne zelle gelöscht wird).

Delphi-Quellcode:
for i:=row2delete+1 to sg.rowcount-1 do
begin
  sg.cells[col,i-1]:=sg.cells[col,i];
end;
bei ganzen Zeilen/Spalten musst du das natürlich für alle betroffenen Zellen machen.

HTH Frank

mcfit 9. Nov 2008 16:26

Re: Wie kann ich Zelleninhalte wirklich löschen???
 
also ich könnte das auch so lösen oder?

Delphi-Quellcode:
begin
for i:=100 downto 1 do
begin
Stringgrid1.Rows[i].Clear;
end;
end;
und jetzt könnte man gleich sowat ranhängen das er die Zeilen löscht und gleich wieder neu ranhängt oder wie??

_frank_ 9. Nov 2008 16:32

Re: Wie kann ich Zelleninhalte wirklich löschen???
 
rows.clear macht dir ja wieder nur den Text raus, aber löscht die zeile seilbst nicht...ich bin davon ausgegangen, dass du richtig löschen willst, also dass du keine leere Zeile hast. dann musst du den nachfolgenden Inhalt "nachrücken".

war vielleicht mit dem zellenweise bisschen verwirrend..

Delphi-Quellcode:
for i:=row2delete+1 to sg.rowcount-1 do
begin
  sg.rows[i-1].assign(sg.rows[i]);
end;
sg.rowcount:=sg.rowcount-1;
musst natürlich noch prüfroutinen bzw. try/except einbauen :)

HTH Frank

mcfit 9. Nov 2008 16:54

Re: Wie kann ich Zelleninhalte wirklich löschen???
 
achso sry hab jetzt erst dein quelcode verstanden ^^

ne wollte es schon so haben, dass die zeile gelöscht wird. meld mich wenn ich es geschafft hab....


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:38 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