Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2008, 11:27   #1
Witaliy
Форумчанин Подтвердите свой е-майл
 
Регистрация: 27.04.2008
Сообщений: 179
По умолчанию StringGrid

Добрый день всем
Как можно из StringGrid удалить какой-то ряд?. Заранее благодарю.
www.programmer.uaforums.net - Український форум програмістів.

www.satellite.ipsys.net - Український форум супутникового телебачення.

Последний раз редактировалось Witaliy; 26.07.2008 в 11:30. Причина: Ошибка
Witaliy вне форума Ответить с цитированием
Старый 26.07.2008, 12:52   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Например, используя свойство Cells или Rows:

Код:
procedure DeleteLine(SG:TStringGrid; N:integer);
var i, j:integer;
begin
   { 1.
   for i:=N to SG.RowCount-2 do begin
      for j:=0 to SG.ColCount-1 do begin
         SG.Cells[j, i] := SG.Cells[j, i+1]
      end;
   end;
   SG.RowCount := SG.RowCount-1;
   }
   // 2.
   for i:=N to SG.RowCount-2 do begin
      SG.Rows[i] := SG.Rows[i+1]
   end;
   SG.RowCount := SG.RowCount-1;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   DeleteLine(StringGrid1, 2);
end;
alexBlack вне форума Ответить с цитированием
Старый 26.07.2008, 20:19   #3
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Функции удаления строки и столбца у TStringGrid есть, она их наследует от TCustomGrid только они в protected, поэтому поступаем так:
Код:
type
  TStrGrid = class(TStringGrid);

procedure TForm1.Button1Click(Sender: TObject);
begin
  TStrGrid(StringGrid1).DeleteRow(2); //удаляем вторую строку
  TStrGrid(StringGrid1).DeleteColumn(1); //удаляем первую колонку
end;
ну, и не забываем, что нумерация начинается с нуля.
_Dmitry вне форума Ответить с цитированием
Старый 28.07.2008, 10:19   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
TStrGrid = class(TStringGrid);
Вот так правильнее:
Код:
TStrGrid = class(GRIDS.TStringGrid);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.04.2012, 11:57   #5
Bit_Man
Пользователь
 
Регистрация: 11.03.2012
Сообщений: 29
По умолчанию

Я из protected
Код:
	virtual void __fastcall DeleteColumn(int ACol);
        virtual void __fastcall DeleteRow(int ARow);
перетащил в public. все работает ничего не полетело.
Bit_Man вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StringGrid Devikss Общие вопросы Delphi 8 25.05.2008 16:14
StringGrid MAcK Общие вопросы .NET 2 31.03.2008 11:40
StringGrid Dimon88 Компоненты Delphi 15 14.02.2008 11:44
StringGrid bart77 Помощь студентам 9 27.04.2007 09:35
Код 13 и stringGrid Alar Общие вопросы Delphi 1 08.02.2007 22:44