{...} type TForm1 = class(TForm) StringGrid1: TStringGrid; Button1: TButton; procedure Button1Click(Sender: TObject); private {...} public {...} end; //from http://www.sharejs.com type TStringGridHack = class(TStringGrid) protected procedure DeleteRow(ARow: Longint); reintroduce; procedure InsertRow(ARow: Longint); end; var Form1: TForm1; implementation {$R *.DFM} procedure TStringGridHack.DeleteRow(ARow: Longint); var GemRow: Integer; begin GemRow := Row; if RowCount FixedRows + 1 then inherited DeleteRow(ARow) else Rows[ARow].Clear; if GemRow then Row := GemRow; end; procedure TStringGridHack.InsertRow(ARow: Longint); var GemRow: Integer; begin GemRow := Row; while ARow do Inc(ARow); RowCount := RowCount + 1; MoveRow(RowCount - 1, ARow); Row := GemRow; Rows[Row].Clear; end; procedure TForm1.Button1Click(Sender: TObject); begin // Insert Row, Zeile hinzufügen TStringGridHack(StringGrid1).InsertRow(1); // Remove Row, Zeile entfernen TStringGridHack(StringGrid1).DeleteRow(2); end; end. //delphi/8760