15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как добавить/удалить строку колонку в TStringGrid.

Компилятор: C++ Builder

Делается это вручную при помощи свойств RowCount и ColCount. Ниже представлен пример добавления строки. Добавление колонки делается примерно так же.

void __fastcall InsertRow(TStringGrid *StringGrid, long AfterIndex)
 {
     SNDMSG(StringGrid->Handle, WM_SETREDRAW, false, 0);
     try
     {
         int row_count = StringGrid->RowCount;
         StringGrid->RowCount = row_count + 1;

         for (int row = row_count; row > AfterIndex + 1; row--)
             StringGrid->Rows[row] = StringGrid->Rows[row - 1];

         StringGrid->Rows[AfterIndex + 1]->Clear();
     }
     catch (...)
     {
         SNDMSG(StringGrid->Handle, WM_SETREDRAW, true, 0);
     }
     SNDMSG(StringGrid->Handle, WM_SETREDRAW, true, 0);

     RECT R = StringGrid->CellRect(0, AfterIndex);
     InflateRect(&R, StringGrid->Width, StringGrid->Height);
     InvalidateRect(StringGrid->Handle, &R, false);
 }