Страница 1 из 1

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

Добавлено: 19 дек 2005, 11:56
OTELLO
Подскажите плиз,как удалить строку из StringGrid...

Добавлено: 19 дек 2005, 14:27
Duncon

Код: Выделить всё

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;
[/color]

Добавлено: 19 дек 2005, 21:52
OTELLO
Спасибо огромное! =)

Добавлено: 20 дек 2005, 11:43
Игорь Акопян
OTELLO, можно хитрее
в классе TCustomGrid очень много вкусного находится в секции protected, и, соответственно видно только прямому наследнику - есть один вариант, который часто применяется для открытия защищённых методов:

Код: Выделить всё

type
  THackGrid = class(TStringGrid);

procedure TForm1.Button1Click(Sender: TObject); 
begin
  THackGrid(MyStringGrid).DeleteRow(3); // к примеру удалить 3 строку
end;


Добавлено: 24 дек 2005, 00:31
OTELLO
2 Игорь Акопян
А я годал зачем нужен сий метод,если он не использутся явно=)
Спасибо, это очень краcиво!

Добавлено: 25 дек 2005, 16:07
alexx
А в Cbuildere так можно?

Добавлено: 25 дек 2005, 21:09
Duncon
Для этого раздел по Си существует...