У ряда объектов из библиотеки визуальных компонент есть свойство Canvas (канва), которое предоставляет простой путь для рисования на них. Эти объекты — TBitmap, TComboBox, TDirectoryListBox, TDrawGrid, TFileListBox, TForm, TImage, TListBox, TOutline, TPaintBox, TPrinter, TstringGrid и др.
Canvas является в свою очередь объектом, объединяющим в себе: поле для рисования, карандаш (Pen), кисть (Brush) и шрифт (Font).
Используя Canvas, Вы можете воспроизводить на форме любые графические объекты — картинки, многоугольники, текст и т.п. Однако при этом Вы должны обрабатывать событие OnPaint того объекта, на канве которого Вы рисуете. Рассмотрим подробнее свойства и методы объекта Canvas.
Свойства Canvas:
Brush – кисть, является объектом со своим набором свойств:
- Bitmap — картинка размером строго 8×8, используется для заполнения (заливки) области на экране
- Color — цвет заливки
- Style — предопределенный стиль заливки; это свойство конкурирует со свойством Bitmap — какое свойство Вы определили последним, то и будет определять вид заливки
Font – шрифт, которым выводится текст (метод TextOut)
Pen – карандаш, определяет вид линий; как и кисть (Brush) является объектом с набором свойств:
- Color — цвет линии,
- Style — стиль вывода: линия, пунктир и др.
- Width — ширина линии в точках
PenPos – текущая позиция карандаша, карандаш рекомендуется перемещать с помощью метода MoveTo, а не прямой установкой данного свойства
Pixels – двухмерный массив элементов изображения (pixel), с его помощью Вы получаете доступ к каждой отдельной точке изображения (см. пример к данному уроку).
Методы Canvas:
Методы для рисования простейшей графики – Arc, Chord, LineTo, Pie, Polygon, PolyLine, Rectangle, RoundRect. При прорисовке линий в этих методах используются карандаш (Pen) канвы, а для заполнения внутренних областей — кисть (Brush).
Методы для вывода картинок на канву – Draw и StretchDraw, В качестве параметров указываются прямоугольник и графический объект для вывода (это может быть TBitmap, TIcon или TMetafile). StretchDraw отличается тем, что растягивает или сжимает картинку так, чтобы она заполнила весь указанный прямоугольник (см. пример к данному уроку).
Методы для вывода текста – TextOut и TextRect. При выводе текста используется шрифт (Font) канвы. При использовании TextRect текст выводится только внутри указанного прямоугольника. Длину и высоту текста можно узнать с помощью функций TextWidth и TextHeight.