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

VCL, KOL, CLX и др. Свои компоненты
Ответить
OTELLO
Сообщения: 59
Зарегистрирован: 11 дек 2004, 11:52
Откуда: Питеррр
Контактная информация:

19 дек 2005, 11:56

Подскажите плиз,как удалить строку из StringGrid...
Аватара пользователя
Duncon
Сообщения: 1974
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

19 дек 2005, 14:27

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

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]
OTELLO
Сообщения: 59
Зарегистрирован: 11 дек 2004, 11:52
Откуда: Питеррр
Контактная информация:

19 дек 2005, 21:52

Спасибо огромное! =)
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

20 дек 2005, 11:43

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

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

type
  THackGrid = class(TStringGrid);

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

Изображение
OTELLO
Сообщения: 59
Зарегистрирован: 11 дек 2004, 11:52
Откуда: Питеррр
Контактная информация:

24 дек 2005, 00:31

2 Игорь Акопян
А я годал зачем нужен сий метод,если он не использутся явно=)
Спасибо, это очень краcиво!
alexx
Сообщения: 116
Зарегистрирован: 02 июл 2004, 22:29
Откуда: Hamburg

25 дек 2005, 16:07

А в Cbuildere так можно?
-------------
Лень - двигатель прогресса!
Аватара пользователя
Duncon
Сообщения: 1974
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

25 дек 2005, 21:09

Для этого раздел по Си существует...
[syntax=Delphi] [/syntax]
Ответить