Обзор компонентов библиотеки C++Builder_______________________153

3.2.6 Секционированное отображение текстов —
компоненты StringGrid, HeaderControl, Header

Компонент StringGrid представляет собой таблицу, содержащую строки. Дан-
ные таблицы могут быть только для чтения или редактируемыми. Таблица может
иметь полосы прокрутки, причем заданное число первых строк и столбцов может
быть фиксированным и не прокручиваться. Таким образом, можно задать заголов-
ки столбцов и строк, постоянно присутствующие в окне компонента. Каждой ячей-
ке таблицы может быть поставлен в соответствие некоторый объект.

Компонент StringGrid предназначен в первую очередь для отображения таб-
лиц текстовой информации. Однако в разделе 3.2.10 поясняется, как этот компо-
нент может отображать и графическую информацию.

Основные свойства компонента, определяющие отображаемый текст:

System:: AnsiString. Cells         Строка, содержащаяся в ячейке с индекса-
[int ACol][int ARow]      ми столбца и строки ACol и ARow.

Classes::TStrings* Cols[int Index] Список строк и связанных с ними объектов,
содержащихся в столбце с индексом Index.

Classes::TStrings* Rows          Список строк и связанных с ними объектов,
[int Index]      содержащихся в строке с индексом Index.

System::TObject* Objects         Объект, связанный со строкой, содержащей-
[int ACol][int ARow]      ся в ячейке с индексами столбца и строки
ACol и ARow.

Все эти свойства доступны во время выполнения. Задавать тексты можно про-
граммно или по отдельным ячейкам, или сразупо столбцам и строкам с помощью
методов класса TStrings, описанных ранее в разделе 3.2.4 и более подробно изло-
женных в справочной части книги в главе 15.

Свойства ColCount и RowCount определяют соответственно число столбцов и
строк, свойства FixedCols и FixedRows — число фиксированных, не прокручивае-
мых столбцов и строк. Цвет фона фиксированных ячеек определяется свойством
FixedColor. Свойства LeftCol и TopRow определяют соответственно индексы пер-
вого видимого на экране в данный момент прокручиваемого столбца и первой ви-
димой прокручиваемой строки.

Свойство ScroIlBars определяет наличие в таблице полос прокрутки.

Свойство Options является множеством, определяющим многие свойства таб-
лицы: наличие разделительных вертикальных и горизонтальных линий в фикси-
рованных (goFixedVertLine и goFixedHorzLine) и не фиксированных (goVertLine
и goHorzLine) ячейках, возможность для пользователя изменять с помощью
мыши размеры столбцов и строк (goColSizing и goRowSizing), перемещать столб-
цы и строки (goColMoving и goRowMoving) и многое другое. Важным элементом в
свойстве Options является goEditing — возможность редактировать содержимое
таблицы.

В основном компонент StringGrid используется для выбора пользователем ка-
ких-то значений, отображенных в ячейках. Свойства Col и Row показывают ин-
дексы столбца и колонки выделенной ячейки. Возможно также выделение пользо-
вателем множества ячеек, строк и столбцов.

Компоненты заголовков HeaderControl и Header можно рассматривать в ка-
кой-то степени как частный случай таблицы строк, состоящей всего из одной стро-
ки. По умолчанию свойство Align в HeaderControl задано равным alTop, что обес-
печивает размещение компонента вверху окна формы. Но это свойство можно из-
менить, например, на aINone и разместить компонент в любом необходимом месте.