Delphi-Help

Главная Статьи Таблица рисунков (DrawGrid) Таблицы изображений — компоненты DrawGrid и StringGrid

Таблицы изображений — компоненты DrawGrid и StringGrid

Оцените материал
(5 голосов)


Таблицы изображений — компоненты DrawGrid и StringGrid

Компонент DrawGrid используется для создания в приложении таблицы, которая может содержать графические изображения. Этот компонент подобен компоненту StringGrid, поскольку последний является производным от DrawGrid. Поэтому в DrawGrid присутствуют все свойства, методы, события компонента StringGrid, кроме относящихся к тексту, т.е. кроме свойств Cells, Cols, Rows, Objects. С этой точки зрения компонент StringGrid обладает существенно большими возможностями, чем DrawGrid, поскольку он может хранить в ячейках и изображения, и тексты. А если вы захотите внести текст в какие-то ячейки DrawGrid, то вам надо будет использовать для этого методы вывода текста на канву, что не очень удобно.

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

Компоненты 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 не слишком удобным для использования.

Авторизация



Счетчики