|
||||||||||||||||||||
|
100 компонентов общего назначения Delphi 54.4. Таблицы изображений - компоненты DrawGrid и StringGridКомпонент DrawGrid используется для создания в
приложении таблицы, которая может содержать графические изображения
(см. пример на рис. 4.6). Этот компонент подобен компоненту StringGrid
(см. раздел 3.3.6), поскольку последний является
производным от DrawGrid. Поэтому в DrawGrid присутствуют
все свойства, методы, события компонента StringGrid, кроме относящихся
к тексту, т.е. кроме свойств Cells, Cols, Rows,
Objects. С этой точки зрения компонент StringGrid обладает
существенно большими возможностями, чем DrawGrid, поскольку он
может хранить в ячейках и изображения, и тексты. А если вы захотите
внести текст в какие-то ячейки DrawGrid, то вам надо будет использовать
для этого методы вывода текста на канву (см. раздел
3.2), что не очень удобно.
Рассмотрим свойства компонентов DrawGrid и StringGrid, относящиеся к изображениям, поскольку свойства StringGrid, относящиеся к тексту, уже рассматривались в разделе 3.3.6. Компоненты DrawGrid и StringGrid имеют канву Canvas, на которой можно размещать изображения методами, изложенными в разделе 4.2. Имеется метод 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 (см. раздел 4.2) в ячейку (1, 1) таблицы DrawGrid1 изображение из компонента BitMap. Эта ячейка является второй слева и второй сверху в таблице, поскольку индексы начинаются с 0. Учтите, что если размеры ячейки меньше, чем размер копируемого изображения, то в ячейке появится только левая верхняя часть картинки. Изображение на канве компонентов DrawGrid и StringGrid, как и на канве любого компонента, подвержено стиранию при перекрытии окна приложения другими окнами или, например, при сворачивании приложения. Поэтому необходимо принимать меры, описанные в разделе 4.2, чтобы с помощью обработчика событий OnPaint восстанавливать испорченное изображение. Это делает компонент DrawGrid не слишком удобным для использования. Все свойства и события, позволяющие определить выбранную пользователем ячейку таблицы, были рассмотрены в разделе 3.3.6. Там же вы найдете описание свойств, отвечающих за внешний вид и допустимость перестройки пользователем таблицы во время выполнения приложения. |
|
Web дизайн: Бурлаков Михаил
Web программирование: Бурлаков Михаил