Insérer/supprimer une ligne dans un StringGrid


{...}
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{...}
public
{...}
end;

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 < RowCount then Row := GemRow;
end;

procedure TStringGridHack.InsertRow(ARow: LongInt);
var
GemRow: Integer;
begin
GemRow := Row;
while ARow < FixedRows do
Inc(ARow);
RowCount := RowCount + 1;
MoveRow(Rowcount - 1, ARow);
Row := GemRow;
Rows[Row].Clear;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
// insère une ligne
TStringGridHack(StringGrid1).InsertRow(1);
// supprime une ligne
TStringGridHack(StringGrid1).DeleteRow(2);
end;

end.
Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire
Fiche de l'article
Mise a jour16/11/2001
VisualisationVu 1422 fois
PublicInternaute zz
CategorieDelphi - Trucs et astuces - Objet
Auteur de l'article
Communauté Delphi Communauté Delphi
connecté le 02/11/2011
0 articles dans la section
Contacter l'auteur