100 компонентов общего назначения библиотеки Delphi5

Пример таблицы DrawGrid

Рассмотрим свойства компонентов DrawGrid и StringGrid, относящиеся к изображениям, поскольку свойства StringGrid, относящиеся к тексту, уже рассматривались в разделе 3.3.6.

Компоненты DrawGrid и StringGrid имеют канву Canvas, на которой можно размещать изображения методами, изложенными в . Имеется метод CellRect, который возвращает область канвы, отведенную под заданную ячейку. Этот метод определен как function CellRect (ACol, ARow: Longint): TRect; где ACol и ARow — индексы столбца и строка, начинающиеся с 0, на пересечении которых расположена ячейка. Возвращаемая этой функцией область является областью канвы, в которой можно рисовать необходимое изображение. Например, оператор DrawGrid1.Canvas.CopyRect(DrawGrid1.CellRect(1, 1), BitMap.Canvas, Rect(0, 0, BitMap.Height, BitMap.Width)); копирует методом CopyRect (см. ) в ячейку (1, 1) таблицы DrawGrid1 изображение из компонента BitMap. Эта ячейка является второй слева и второй сверху в таблице, поскольку индексы начинаются с 0. Учтите, что если размеры ячейки меньше, чем размер копируемого изображения, то в ячейке появится только левая верхняя часть картинки.

Изображение на канве компонентов DrawGrid и StringGrid, как и на канве любого компонента, подвержено стиранию при перекрытии окна приложения другими окнами или, например, при сворачивании приложения. Поэтому необходимо принимать меры, описанные в , чтобы с помощью обработчика событий OnPaint восстанавливать испорченное изображение. Это делает компонент DrawGrid не слишком удобным для использования.

Все свойства и события, позволяющие определить выбранную пользователем ячейку таблицы, были рассмотрены в . Там же вы найдете описание свойств, отвечающих за внешний вид и допустимость перестройки пользователем таблицы во время выполнения приложения.

Содержание раздела