Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие по программированию на ДЕЛЬФИ.doc
Скачиваний:
45
Добавлен:
11.02.2015
Размер:
1.77 Mб
Скачать

2.4. TStringGrid - таблица строк

Компонент TStringGrid предназначен для создания таблиц, в ячейках которых располагаются произвольные текстовые строки. Он является прямым потомком TDrawGrid, от которого им унаследовано большинство свойств и методов.

Таблица делится на две части - фиксированную и рабочую. Фиксированная служит для показа заголовков столбцов/рядов и для ручного управления их размерами. Обычно фиксированная часть занимает крайний левый столбец и самый верхний ряд таблицы, однако с помощью свойств FixedCols и FixedRows можно задать другое количество фиксированных столбцов и рядов (если эти свойства имеют 0, таблица не содержит фиксированной зоны).

Рабочая часть - это остальная часть таблицы. Она может содержать произвольное количество столбцов и рядов, более того, эти величины могут изменяться программно. Рабочая часть может не умещаться целиком в пределах окна компонента, в этом случае в него автоматически помещаются нужные полосы прокрутки. При прокрутке рабочей области фиксированная область не исчезает, но меняется ее содержимое - заголовки строк и рядов. Центральным свойством компонента является Cells - двухмерный массив ячеек, каждая из которых может содержать произвольный текст. Конкретная ячейка определяется парой чисел - номером столбца и номером ряда, на пересечении которых она находится (нумерация начинается с нуля). Свойство Сells имеет тип String, поэтому программа может легко прочитать или записать содержимое нужной ячейки.

Количество ячеек по каждому измерению хранит пара свойств ColCount (количество столбцов) и RowCount (количество рядов). Значения этих свойств и, следовательно, размеры таблицы могут меняться как на этапе разработки программы, так и в ходе ее работы, однако их значения должны быть как минимум на единицу больше соответственно значений в свойства FixedCols и FixedRows, определяющих размеры фиксированной зоны.

Содержимое ячеек можно редактировать. Для этого в таблице используется специализированный потомок редактора TMaskEdit.

Свойства компонента:

BorderStyle

Определяет рамку компонента

Cells[X,Y]

Определяет содержимое ячейки с табличными координатами (X,Y)

Col

Содержит номер столбца сфокусированной ячейки

ColCount

Содержит количество столбцов таблицы

Cols[Index]

Содержит все строки колонки с индексом Index

ColWidths[Index]

Содержит ширину столбца с индексом Index

DefaultColWidth

Содержит умалчиваемое значение ширины столбца

DefaultDrawing

 

Разрешает/запрещает автоматическую прорисовку служебных элементов таблицы - фиксированной зоны, фона и прямоугольника сфокусированной ячейки и т. п.

DefaultRowHeight

Содержит умалчиваемую высоту рядов

EditorMode

Разрешает/запрещает редактирование ячеек. гнорируется, если свойство Options включает goAlwayseShowEditor или не включает goEditing

FixedColor

Определяет цвет фиксированной зоны

FixedCols

Определяет количество столбцов фиксированной зоны

FixedRows

Определяет количество рядов фиксированной зоны

GridHeight

Содержит высоту таблицы

GridLineWidth

Определяет толщину линий, расчерчивающих таблицу

GridWidth

Содержит ширину таблицы

LeftCol

Содержит номер самого левого столбца, видимого в зоне прокрутки

Objects [X,Y]

Обеспечивает доступ к объекту, связанному с ячейкой (X,Y)

Options

Содержит параметры таблицы

Row:

Содержит номер ряда сфокусированной ячейки

RowCount

Содержит количество рядов таблицы

RowHeights[Index]

Содержит высоту ряда с индексом Index

Rows[Index]

Содержит все строки ряда с индексом Index

ScrollBars

Определяет полосы прокрутки

Selection

Определяет группу выделенных ячеек

TabStops[Index]

Разрешает/запрещает выбирать столбец с индексом Index при обходе ячеек клавишей Tab. Игнорируется, если Options не содержит goTabs

TopRow

Содержит номер самого верхнего ряда, видимого в прокручиваемой зоне ячеек

VisibleColCount

Содержит количество столбцов, полностью видимых в зоне прокрутки

VisibleRowCount

Содержит количество рядов, полностью видимых в зоне прокрутки

Элементы множества TGridOptions имеют следующий смысл:

goFixedVertLine

Столбцы фиксированной зоны разделяются вертикальными линиями

goFixedHorzLine

Ряды фиксированной зоны разделяются горизонтальными линиями

goVertLine

Столбцы рабочей зоны разделяются вертикальными линиями

goHorzLine

Ряды рабочей зоны разделяются горизонтальными линиями

goRangeSelect

Разрешено выделение нескольких ячеек. Игнорируется, если включен элемент goEdit

goDrawFocus Selected

Разрешено выделять сфокусированную ячейку так же, как выделенные

goRowSizing

Разрешено ручное (мышью) изменение высоты строк

goColSizing

Разрешено ручное изменение ширины рядов

goRowMoviog

Разрешено ручное перемещение рядов (нажать левую кнопку мыши на фиксированной ячейке перемещаемого ряда и, удерживая кнопку нажатой, переместить ряд на новое место)

goColMoving

Разрешено ручное перемещение столбца

goEditing

Разрешено редактирование ячейки. Игнорируется, если включен элемент goRowSelect. Редактирование начинается после щелчка мыши или нажатия клавиши F2 и завершается при щелчке по другой ячейке или нажатии клавиши Enter

goTabs

Разрешено обходить ячейки клавишей Tab (Shift+Tab) Обязывает выделять сразу все ячейки ряда и запрещает редактирование ячеек