Einzelnen Beitrag anzeigen

Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
349 Beiträge
 
Delphi XE7 Professional
 
#3

AW: E2362 Auf protected-Symbol TCustomGrid.DeleteRow kann nicht zugegriffen werden

  Alt 17. Dez 2014, 19:24
Hallo,

mit
Delphi-Quellcode:

// Quelle: [URL="http://stackoverflow.com/questions/16351109/how-do-i-delete-a-tstringgrid-row"]http://stackoverflow.com/questions/16351109/how-do-i-delete-a-tstringgrid-row[/URL]
procedure DeleteRow(Grid: TStringGrid; ARow: Integer);
var
  i: Integer;
begin
  for i := ARow to Grid.RowCount - 2 do
    Grid.Rows[i].Assign(Grid.Rows[i + 1]);
  Grid.RowCount := Grid.RowCount - 1;
end;
bekomme ich die Zeilen wie gewünscht gelöscht.

Auch diesen Trick habe ich gefunden:
Delphi-Quellcode:
type
    THackGrid=class(TCustomGrid);

[...]
THackGrid(strngrd1).DeleteRow(zeile);
Nur scheint der anstatt wirklich zu löschen die entsprechenden Zeilen nur aus dem definierten Bereich der Tabelle zuverschieben.
Wenn
Code:
RowCount
z.B. erst 6 ist, dann zwei Zeilen damit gelöscht werden und man dann
Code:
RowCount
auf 8 erhöht, dann tauchen dort die gelöschten Inhalte wieder auf

Aber, warum ist bei dem einfachen TStringGrid das ich auf das Formular ziehe, das Löschen gesperrt.
Ich habe keine Option zum Entsperren gefunden. Aber was nützt eine Option die nicht nutzbar ist?

Gruß Heiko
OS: Linux Mint 20 Cinnamon (64-Bit), Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC), Lazarus 2.1 (Freepascal 3.3.1),
  Mit Zitat antworten Zitat