§ 18. Компоненты для работы с таблицами
18.1. Компонент StringGrid
Компонент таблица строк — StringGrid предназначен для обработки данных, представленных в табличной форме. На панели компонентов Additional компонент StringGrid изображен в виде , имя объекта StringGrid. Компонент StringGrid, помещенный на форму, получает имя StringGridN, где N — номер 1, 2, 3… (пример 18.1). Компонент StringGrid предназначен в первую очередь для отображения в таблице текстовой информации. Однако его можно использовать и для отображения графической информации. Свойства компонента приведены в примере 18.2. За многие свойства компонента StringGrid отвечает свойство Options (см. Приложение). Данные таблицы могут быть доступны, как только для чтения, так и для редактирования. При установке компонента на форму, ячейки таблицы в первом столбце и первой строке фиксированы и недоступны для редактирования, остальные ячейки можно редактировать. Фиксированные ячейки используются в основном для подписей заголовков столбцов и строк. При появлении полос прокрутки фиксированные ячейки остаются на месте. В компоненте StringGrid реализована адресация каждой отдельной ячейки по ее номеру столбца и строки[1]. Содержимое ячейки (i, j), где i — номер столбца, j — номер строки, имеет вид: StringGrid1 -> Cells[i][j] Номера столбцов и строк начинаются с 0. Столбец и строка с номером нуль по умолчанию принадлежат фиксированной зоне. В момент выбора пользователем ячейки наступает событие OnSelectCell. В обработчик этого события передаются номера столбца (ACol) и строки (ARow) выделенной ячейки, а также логический параметр CanSelect — допустимость выбора. Параметр CanSelect можно использовать для запрета выделения ячейки, задав его значение false. А параметры ACol и ARow могут использоваться для какой-то реакции программы на выделение пользователя. Пример 18.3. Создать проект, в котором при выборе ячейки таблицы, в ней будет прописываться адрес. Этапы выполнения задания
Компонент StringGrid можно применять для решения задач, использующих двумерные массивы. Пример 18.4. Создать проект, в котором будет вычисляться сумма элементов двумерного массива. Элементы массива задаются случайным образом. Этапы выполнения задания
Иногда при работе требуется очистить все ячейки таблицы от текста. Метода, который это делает для таблицы, нет. Можно в цикле обратиться к каждой ячейке и присвоить ей значение пустой строки или использовать метод, который очищает значение столбца: for (int i = StringGrid1 -> FixedCols; [1] Обратите внимание на то, что первым указывается номер столбца, а вторым номер строки (по аналогии с адресацией ячеек в Excel) |
Пример 18.1. Компонент StringGrid на форме: Пример 18.2. Свойства компонента StringGrid.
Свойства Color и FixedColor работают, если у свойства DrawingStyle выбрано значение gdsClassic. При необходимости установки ширины и высоты отдельных столбцов и (или) строк используют свойства:
Значения для этих свойств настраиваются в обработчике события OnCreate для формы, так же, как и надписи заголовков, располагающиеся в строках и столбцах фиксированной зоны таблицы. Пример 18.3. Форма на этапе проектирования: Обработчик события OnCreate для формы.
Обработчик события OnSelectCell для таблицы.
Работающее приложение: Пример 18.4. Форма на этапе проектирования: Обработчик события OnClick для кнопки BitBtn1.
Обработчик события OnClick для кнопки BitBtn2.
Работающее приложение: |