Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 2 семестр.doc
Скачиваний:
42
Добавлен:
27.05.2015
Размер:
777.73 Кб
Скачать

3.7. Таблица String Grid

Таблица String Grid является экземпляром класса TStringGrid и предназначена для отображения двумерной информации, например элементов матрицы. В таблице может находиться произвольное количество строк и столбцов.

На пересечении строк и столбцов находятся ячейки. Каждая ячейка может содержать символьную строку и произвольный объект, ассоциированный с ячейкой. Каждая ячейка таблицы может находится в одном из пяти состояний: пассивном, выделенном (выделена особым цветом), активном (выделена рамкой из точек), фиксированном (тоже выделена особым цветом) и в состоянии редактирования. Нумерация строк и столбцов таблицы начинается с нуля. Координаты каждой ячейки таблицы задаются парой чисел, первое из которых является номером столбца, а второе – номером строки.

Класс TCustomGrid, являющийся предком класса TStringGrid, содержит определение многих характеристик, общих для любых таблиц. Основные свойства класса TCustomGrid:

property Col: Longint; задает столбец, в котором находится активная ячейка. Свойство доступно только на этапе выполнения программы.

property ColCount: Longint; задает число столбцов в таблице.

property ColWidths[Index: Longint]: Integer; задает ширину столбца с индексом index в таблице. Доступно только на этапе выполнения программы.

property DefaultColWidth: Integer; задает исходную ширину всех столбцов.

property DefaultDrawing: Boolean; если свойство имеет значение True, то прорисовка ячеек при рисовании таблицы будет происходить автоматически, в противном случае необходимо создать свои средства отображения.

property DefaultRowHeight: Integer; задает исходную высоту всех строк.

property RowHeights[Index: Longint]: Integer; задает высоту строки с индексом Index таблицы. Доступно только на этапе выполнения программы.

property FixedColor: TColor; задает цвет фиксированных ячеек.

property FixedCols: Integer; задает число фиксированных столбцов. По умолчанию задается один фиксированный столбец.

property FixedRows: Integer; задает число фиксированных строк. По умолчанию задается одна фиксированная строка.

property GridLineWidth: Integer; задает толщину линий между ячейками в пикселях.

property Row: Longint; задает строку, в которой находится активная ячейка. Доступно только на этапе выполнения программы.

property RowCount: Longint; задает число строк таблицы.

property RowHeigth[Index:Longint]:Integer; задает высоту строк таблицы.

property Selection: TGridRect; указывает область текущего выделения.

При выделении указываются номера строк и столбцов. Доступно только на этапе выполнения программы.

property Options: TGridOptions; задает флаги, определяющие поведение таблицы:

o goFixedVertLine – фиксированные ячейки разделяются вертикальными линиями;

o goFixedHorzLine – фиксированные ячейки разделяются горизонтальными линиями;

o goVertLine – остальные ячейки разделяются вертикальными линиями;

o goHorzLine – остальные ячейки разделяются горизонтальными линиями;

o goRangeSelect – допустимо выделение нескольких ячеек;

o goDrawFocusSelected – активная ячейка закрашивается тем же цветом, которым закрашивается и выделенная, в противном случае закрашивается цветом нейтральных

ячеек;

o goRowSizing – высота строк таблицы может изменяться;

o goColSizing – ширина столбцов таблицы может изменяться;

o goRowMoving – строки таблицы могут перемещаться;

o goColMoving – столбцы таблицы могут перемещаться;

o goEditing – ячейки могут редактироваться;

o goTabs – переход от ячейки к ячейке возможен с помощью клавиши Таb (клавиш

Shift+Tab);

o goRowSelect – выделение только целых строк таблицы;

o goAlwaysShowEditor – при выделении ячейки она сразу же становится и активной (в

противном случае активизируется либо клавишей F2, либо двойным нажатием клавиши мыши, либо нажатием какой-либо символьной клавиши);

o goТhumbTracking – перемещение подвижной части таблицы синхронно с перемещением ползунка линейки скроллинга (в противном случае перемещение осуществляется только после того, как ползунок будет отпущен).

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

property Cells[ACol, ARow: Integer]: string; содержит двумерный массив символьных строк, каждая из которых принадлежит ячейке, находящейся в столбце ACol, и строке ARow.

property Cols[Index: Integer]: TStrings; позволяет получить доступ к столбцу с индексом Index.

property Objects[ACol, ARow: Integer]: TObject; содержит двумерный массив, элементами которого являются указатели на объекты, каждый из которых ассоциирован с соответствующей ему ячейкой, находящейся в столбце ACol и строке ARow.

property Rows[Index: Integer]: TStrings; позволяет получить доступ к строке с индексом index.

Событием по умолчанию для таблицы StringGrid является событие OnClick.

Пример использования компонента StringGrid

В целочисленной матрице А(4,4) поменять местами первую и последнюю строки.

StGr2.Rows[0]:= StGr1.Rows[3]; // StGr2.Cells[i,0]:= StGr1.Cells[i,3];

StGr2.Rows[3]:= StGr1.Rows[0]; // StGr2.Cells[i,3]:= StGr1.Cells[i,0];