Russian Belarusian English German Japanese Ukrainian

DrawGrid и StringGrid - таблицы изображений

CuBook25

Компонент DrawGrid используется для создания в приложении таблицы, которая может содержать графические изображения. Этот компонент подобен компоненту StringGrid, поскольку последний является производным от DrawGrid. Поэтому в DrawGrid присутствуют все свойства, методы, события компонента StringGrid, кроме относящихся к тексту, т.е. кроме свойств Cells, Cols, Rows, Objects. С этой точки зрения компонент StringGrid обладает существенно большими возможностями, чем DrawGrid, поскольку он может хранить в ячейках и изображения, и тексты. А если вы захотите внести текст в какие-то ячейки DrawGrid, то вам надо будет использовать для этого методы вывода текста на канву, что не очень удобно.
 
Компоненты DrawGrid и StringGrid имеют канву Canvas, на которой можно размещать изображения методами. Имеется метод CellRect, который возвращает область канвы, отведенную под заданную ячейку.
 
ACol и ARow - индексы столбца и строки, начинающиеся с 0, на пересечении которых расположена ячейка. Возвращаемая этой функцией область является областью канвы, в которой можно рисовать необходимое изображение.
Например, оператор копирует методом CopyRect в ячейку (1,1) таблицы DrawGrid1 изображение из компонента BitMap:
DrawGrid1->Canvas->CopyRect(DrawGrid1->CellRect(1,1),BitMap->Canvas,Rect(0,0,BitMap->Height,BitMap->Width));
Эта ячейка является второй слева и второй сверху в таблице, поскольку индексы начинаются с 0. Учтите, что если размеры ячейки меньше, чем размер копируемого изображения, то в ячейке появится только левая верхняя часть картинки.
 
Изображение на канве компонентов DrawGrid и StringGrid, как и на канве любого компонента, подвержено стиранию при перекрытии окна приложения другими окнами или, например, при сворачивании приложения. Поэтому необходимо принимать меры, чтобы с помощью обработчика событий OnPaint восстанавливать испорченное изображение. Это делает компонент DrawGrid не слишком удобно для использования.
Удобным способом занесения изображений в ячейки DrawGrid является использование обработчика событий OnDrawCell. Эти события наступают для каждой ячейки таблицы в момент ее перерисовки.
 
Параметры ACol и ARow - это номер столбца и строки, на пересечении которых расположена перерисовываемая ячейка. Параметр Rect типа TRect определяет область данной ячейки на канве. В эту область надо заносить изображение. Параметр State указывает состояние ячейки. Он является множеством, которое может содержать следующие элементы:
- gdSelected - выделенная ячейка;
- gdFocused - ячейка, находящаяся в фокусе;
- gdFixed - ячейка в фиксированной области таблицы.
Параметр State можно использовать для различного характера отображения ячеек в различных состояниях.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Защитный код Обновить