Содержание материала

Можно сделать наследника от TCustomGrid. А у последнего есть метод - DeleteRow.

Автор: Song

Например удаление текущей строки:

Code:

Type TFakeGrid=class(TCustomGrid);

{©Drkb v.3(2007): www.drkb.ru,

®Vit (Vitaly Nevzorov) - Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.}

 

procedure TForm1.MyDelete(Sender: TObject);

begin

TFakeGrid(Grid).DeleteRow(Grid.row);

end;

Примечание от bur80 (Sources.ru):

 

 

Предлагаю в разделе VCL -> StringGrid внести корректировочку в статью "Как удалить строку в StringGrid в run-time", что данный метод(!) будет работать только в случае если форма создаётся вот так:

Code:

...

Form1.ShowModal;

...

 
а не так:

Code:

...

var

fr1 : TForm1;

begin

fr1 := Tform1.Create(Application);

fr1.Show;

...


Code:

{ **** UBPFD *********** by delphibase.endimus.com ****

>> Удаление строки из StringGrid

 

Удаляет из StringGrid указанную строку, сдвигая остальные.

 

Зависимости: Grids

Автор:       Борис Новгородов (MBo), Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра., Новосибирск

Copyright:   MBo

Дата:        27 апреля 2002 г.

***************************************************** }

 

procedure SGDeleteRow(SG: TStringGrid; RowToDelete: Integer);

var

i: Integer;

begin

with SG do

begin

   if (RowToDelete >= 0) and (RowToDelete < RowCount) then

   begin

     for i := RowToDelete to RowCount - 2 do

       Rows[i].Assign(Rows[i + 1]);

     RowCount := RowCount - 1;

   end;

end;

end;

 

 


 

Code:

procedure GridDeleteRow(RowNumber: Integer; Grid: TstringGrid);

var

  i: Integer;

begin

  Grid.Row := RowNumber;

  if (Grid.Row = Grid.RowCount - 1) then

    { On the last row}

    Grid.RowCount := Grid.RowCount - 1

  else

  begin

    { Not the last row}

    for i := RowNumber to Grid.RowCount - 1 do

      Grid.Rows[i] := Grid.Rows[i + 1];

    Grid.RowCount := Grid.RowCount - 1;

  end;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  GridDeleteRow(3, stringGrid1);

end;

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить