...eine Zeile in einem TStringGrid löschen/ hinzufügen?
Autor: Thomas Stutz
// For this tip you need a StringGrid1 and a Button1.
// Für diesen Tip braucht man ein StringGrid1 und einen Button1.
{...}
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
  // Insert Row, Zeile hinzufügen
  TStringGridHack(StringGrid1).InsertRow(1);
  // Remove Row, Zeile entfernen
  TStringGridHack(StringGrid1).DeleteRow(2);
end;
end.
printed from
  www.swissdelphicenter.ch
  developers knowledge base