Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi StringGrid mittels Änderung von RowCount leeren (https://www.delphipraxis.net/126616-stringgrid-mittels-aenderung-von-rowcount-leeren.html)

Helmi 29. Dez 2008 15:22


StringGrid mittels Änderung von RowCount leeren
 
Hallo,

ich habe eine StringGrid, deren Zeilenanzahl (nicht FixRows) variabel sind.

Nun baue ich z. B. 9 Zeilen auf und beschreibe sie mit Text, danach werden die Zeilen mittels
Delphi-Quellcode:
procedure TEinstellungenForm.StringGrid_leeren;
begin
  //alle Zellen leeren und auf eine Leerzeile beschränken
  StringGrid_Datenbanken.RowCount := StringGrid_Datenbanken.FixedRows + 1;

  StringGrid_Datenbanken.Cells[0, 1] := '';
  StringGrid_Datenbanken.Cells[1, 1] := '';

  //StringGrid disablen
  StringGrid_Datenbanken.Enabled := false;
end;
wieder geleert.

Nach dem Leeren werden nur noch 4 Zeilen aufgebaut und 3 davon mit Text beschrieben.
Mein Problem ist nun, dass die 4. Zeile noch den Text vor dem Löschen enthält, anstatt keinen Inhalt zu haben.

Eigentlich dachte ich dass die Änderung von RowCount der StringGrid alle alten Zeilen löscht. Nur ist dem nicht so.

Wie kann ich alle Zeilen löschen und dann neu (mit leerem Inhalt) wieder aufbauen?

DeddyH 29. Dez 2008 15:40

Re: StringGrid mittels Änderung von RowCount leeren
 
Delphi-Quellcode:
//alle Zellen leeren und auf eine Leerzeile beschränken
  for i := Pred(StringGrid_Datenbanken.RowCount) downto StringGrid_Datenbanken.FixedRows do
    StringGrid_Datenbanken.Rows[i].Clear;
  StringGrid_Datenbanken.RowCount := StringGrid_Datenbanken.FixedRows + 1;
Ungetestet, sollte aber stimmen.

Helmi 29. Dez 2008 15:47

Re: StringGrid mittels Änderung von RowCount leeren
 
Danke Danke!
funktioniert prima! :-D

himitsu 29. Dez 2008 15:56

Re: StringGrid mittels Änderung von RowCount leeren
 
andersrum (also erst kürzen und den Rest leeren geht vielleich schneller)

Delphi-Quellcode:
StringGrid_Datenbanken.RowCount := StringGrid_Datenbanken.FixedRows + 1;
for i := StringGrid_Datenbanken.RowCount - 1 downto StringGrid_Datenbanken.FixedRows do
  StringGrid_Datenbanken.Rows[i].Clear;
oder, da nur noch eine Zeile übrig bleibt
Delphi-Quellcode:
StringGrid_Datenbanken.RowCount := StringGrid_Datenbanken.FixedRows + 1;
StringGrid_Datenbanken.Rows[StringGrid_Datenbanken.FixedRows].Clear;

DeddyH 29. Dez 2008 15:59

Re: StringGrid mittels Änderung von RowCount leeren
 
Wenn ich mich recht entsinne, ist es bei diesem blöden StringGrid wirklich nötig, alle einmal belegten Zeilen manuell zu leeren, da sonst der alte Inhalt wieder zum Vorschein kommt, solange sie nicht neu befüllt werden.

Helmi 29. Dez 2008 16:28

Re: StringGrid mittels Änderung von RowCount leeren
 
Zitat:

Zitat von DeddyH
Wenn ich mich recht entsinne, ist es bei diesem blöden StringGrid wirklich nötig, alle einmal belegten Zeilen manuell zu leeren, da sonst der alte Inhalt wieder zum Vorschein kommt, solange sie nicht neu befüllt werden.

Ja, dem ist leider so.
Ich dachte ja zuerst ich könne mit meiner Procedure oben das komplette StringGrid leeren (bis auf die fixen Zeilen). Aber leider ist dem nicht so.

DeddyH 29. Dez 2008 16:31

Re: StringGrid mittels Änderung von RowCount leeren
 
Meiner persönlichen Meinung nach ist TStringGrid auch die Komponente, die in der gesamten IDE am wenigsten zu gebrauchen ist.

himitsu 29. Dez 2008 16:42

Re: StringGrid mittels Änderung von RowCount leeren
 
oh sch****, hast Recht, das kommt wieder :shock:
na dann geht es leider nicht so :?

Helmi 29. Dez 2008 17:05

Re: StringGrid mittels Änderung von RowCount leeren
 
Zitat:

Zitat von DeddyH
Meiner persönlichen Meinung nach ist TStringGrid auch die Komponente, die in der gesamten IDE am wenigsten zu gebrauchen ist.

Ich nutz sie auch nur sehr selten - meistens verwend ich ne ListView


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