Сетка для рисования – компонент TDrawGrid

Общее количество столбцов и строк задается в свойствах:

propertyColCount: Longint; //число столбцов

propertyRowCount: Longint; //число строк

 

Часть столбцов и строк сетки можно сделать фиксированными. Фиксированный ряд (колонка) на экране компьютера отображается другим цветом. Ячейки такого рода недоступны для редактирования пользователем, не перемещаются с помощью полос прокрутки и обычно используются для размещения заголовков и комментариев.

propertyFixedCols: Integer; //число фиксированных колонок

propertyFixedRows: Integer; //число фиксированных строк

 

Для того чтобы отказаться от фиксированных колонок или строк присвойте

соответствующему свойству значение 0. Еще одной особенностью фиксированного ряда (колонки) является то, что он может располагаться только на первых позициях сетки. Другими словами, если в сетке объявлен один фиксированный ряд, то его индекс aRow всегда равен 0. Для выделения фиксированных ячеек цветом используется свойство:

propertyFixedColor: TColor;

 

Ширина столбцов и высота строк сетки задается по умолчанию в свойствах:

propertyDefaultColWidth: Integer; //ширина колонки по умолчанию

propertyDefaultRowHeight: Integer; //высота строки по умолчанию

 

Присвоение перечисленным свойствам каких-то значений «причесывает»

все ячейки сетки под одну гребенку – они получают одинаковые размеры

высоты и ширины. Вместе с тем возможна и индивидуальная настройка размеров любой колонки или строки. Для этого надо знать их порядковый номер Index:

propertyColWidths[Index: Longint]: Integer; //ширина колонки

propertyRowHeights[Index: Longint]: Integer; //высота строки

 

Эти свойства недоступны в Инспекторе объектов и изменять их можно только в коде программы. Есть возможность настроить толщину линий, разделяющих ячейки:

propertyGridLineWidth: Integer; //по умолчанию 1 пиксел

 

Два свойства (только для чтения) хранят информацию о высоте и ширине

всей таблицы:

propertyGridHeight: Integer; //высота сетки

propertyGridWidth: Integer; //ширина сетки

 

Если в видимой области сетки все ячейки не помещаются, то по краям сетки

необходимо включить линии прокрутки:

propertyScrollBars: TScrollStyle;

typeTScrollStyle = (ssNone, ssHorizontal, ssVertical, ssBoth);

 

Количество полностью видимых в данный момент столбцов или строк можно получить из свойств:

propertyVisibleColCount: Integer; //видимых колонок

propertyVisibleRowCount: Integer; //видимых рядов

 

При прокрутке сетки зачастую необходимо выяснить номера столбца и строки, соответствующих левой верхней видимой ячейке (не находящейся в фиксированной области).

propertyLeftCol: Longint; //индекс левой ячейки

propertyTopRow: Longint; //индекс верхней ячейки

 

С изменением координат видимой ячейки непосредственно связано событие:

propertyOnTopLeftChanged: TNotifyEvent;

 

Например:

procedureTForm1.DrawGrid1TopLeftChanged(Sender: TObject);

Begin

Label1.Caption:=Format('Колонка %d Строка %d', [DrawGrid1.LeftCol,DrawGrid1.TopRow]);

end;

 

Широкий спектр услуг по настройке сетки обеспечивает множество Options,

возможные значения которого представлены в табл. 8.6.

propertyOptions: TGridOptions;

TGridOptions = set ofTGridOption;

 

Таблица 8.6.Опции сетки TGridOption

Значение Результат
goFixedVertLine Ячейки фиксированной области разделены вертикальными линиями.
goFixedHorzLine Ячейки фиксированной области разделены горизонтальными линиями.
goVertLine Колонки разделяются линиями.
goHorzLine Строки разделяются линиями.
goRangeSelect Одновременно может быть выделено несколько ячеек(опция не работает при включенной опции goEditing)
goDrawFocusSelected Сфокусированная ячейка выделяется цветом.
goRowSizing Разрешение на установку индивидуальных размеров для строки, колонки.
goColSizing Разрешение на перемещение мышью строк, колонок.
goRowMoving
goColMoving
goEditing Разрешает пользователю редактировать текст ячеек.
goTabs При включении переход между столбцами осуществляется при помощи клавиши Tab и Shift+Tab.
goRowSelect Запрещает выделение отдельной ячейки. Вместо этого выделяется весь ряд. При включении этой опции отключается goAlwaysShowEditor.
goAlwaysShowEditor Имеет значение при включенной опции goEditing. Если опция включена, то выбрав ячейку, пользователь сразу оказывается в режиме редактирования. В противном случае необходимо предварительное нажатие клавиш Enter или F2.
goThanbTracking Определяет порядок прорисовки содержимого ячеек при перемещении бегунка полосы прокрутки сетки. Если опции отключена прорисовка начинается после отпускания кнопки мыши, в противном случае прорисовка осуществляется при малейшем перемещении бегунка, а это требует дополнительного расхода ресурсов.

 

Не забывайте, что отсчет столбцов и строк начинается с нуля, т. е. верхняя левая ячейка сетки располагается в нулевом столбце и нулевой строке.

Адрес каждой ячейки сетки однозначно задается номером столбца и строки.

Для того чтобы узнать координаты выделенной ячейки, обратитесь к свойствам:

propertyCol: Longint;

propertyRow: Longint;

 

На этом способы выяснения координат ячейки не заканчиваются. Экранные

координаты курсора мыши (X, Y) легко преобразуются в номера столбца

и строки ячейки (aCol, aRow) при помощи метода:

procedureMouseToCell(X, Y : Integer; varACol, ARow : Longint);

Существует и обратный метод, возвращающий координаты прямоугольной

области, соответствующей ячейке:

functionCellRect(ACol, ARow : Longint): TRect;








Дата добавления: 2016-03-15; просмотров: 691;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.011 сек.