So klappts ohne Helfer
Delphi-Quellcode:
procedure DeleteSGRow(MyGrid: TStringGrid; iRow: Integer);
var
i: Integer;
begin
for i := iRow to MyGrid.RowCount - 2 do // kopiere alles unterhalb iRow
MyGrid.Rows[i].Assign(MyGrid.Rows[i + 1]); // nach oberhalb von iRow
MyGrid.RowCount := MyGrid.RowCount - 1; // entferne letzten Eintrag
end;
Beispiel-Aufruf
DeleteSGRow(MyStringGrid, MyStringGrid.Row);
für aktuelle Selektion oder
DeleteSGRow(MyStringGrid, 10);
um Zeile 10 zu löschen.