«« Site Rescued »»

While the site is still going to move from its current host, a new site will now take its place. More Info.

The new site may have less content, but the core will now remain. And it will now play nicely with phones! Keep an eye on the DelphiDabbler Blog for news.

» Help

Delete or clear rows in a TStringGrid

   

If you ever needed to delete rows from a TStringGrid component you should have noticed that it does not have a method for deleting or clearing rows. Here is nice class helper which does that.

Declare a class helper type:

type
  TStringGridRowDeletion = class helper for TStringGrid
  public
    procedure RemoveRows(RowIndex, RCount: Integer);
    procedure Clear;
  end;

and implement it as follows:

{ TStringGridRowDeletion }
 
procedure TStringGridRowDeletion.Clear;
var
  i: integer;
begin
  for i := 0 to RowCount -1 do
    RemoveRows(0, RowCount);
end;
 
procedure TStringGridRowDeletion.RemoveRows(RowIndex, RCount: Integer);
var
  i: Integer;
begin
  for i := RowIndex to RowCount - 1 do
    Rows[i] := Rows[i + RCount];
  RowCount := RowCount -RCount;
end;

Now all you have to do is to add this helper in a unit where you need to call RemoveRows or create a separate unit for it and "use" it where required. From now on you can delete rows the easy way. E.g.

var
  myStringGrid: TStringGrid;
begin
  ...
  myStringGrid.RemoveRows(0, 4);
  ...
end;

Note: the RemoveRows method can be invoked from all TStringGrid descendants.

Author: Dorin Duminica
Contributor: Riccardo Faiella (Topellina)
Added: 2012-07-06
Last updated: 2012-07-06

« Return to contents »