property Handle: HDC;
Для рисования канва включает в себя шрифт, перо и кисть:
property Font: TFont ;
property Pen: TPen;
property Brush: TBrush;
Кроме того, можно рисовать и поточечно, получив доступ к каждому пикселу. Значение свойства:
property Pixels [X, Y: Integer] : TColor; соответствует цвету точки с координатами X, Y.
Необходимость отрисовывать каждую точку возникает нередко. Однако, если нужно модифицировать все или хотя бы многие точки изображения, свойство Pixels надо сразу отбросить - настолько оно неэффективно. Гораздо быстрее редактировать изображение при помощи свойства ScanLine объекта TBitmap; об этом рассказано ниже.
Канва содержит методы-надстройки над всеми основными функциями рисования GDI Windows и свойства, которые приведены в табл. 10.4 и 10.5. При их рассмотрении имейте в виду, что все геометрические фигуры рисуются текущим пером. Те из них, которые можно закрашивать, закрашиваются с помощью текущей кисти. Кисть и перо при этом имеют текущий цвет.
Таблица 10.4. Методы класса TCanvas
Метод |
Описание |
procedure Arc (Xi, Yi, Х2, |
Метод рисует сегмент эллипса. Эллипс определя- |
Y2, ХЗ, Y3, Х4, Y4: |
ется описывающим прямоугольником (Х1,У1)- |
|
(Х2, У2); его размеры должны лежать в диапа- |
зоне от 2 до 32 767 точек. |
|
Начальная точка сегмента лежит на пересече- |
|
нии эллипса и луча, проведенного из его центра |
|
через точку (ХЗ, УЗ). Конечная точка сегмента |
|
лежит на пересечении эллипса и луча, прове- |
|
денного из его центра через точку (Х4, У4). Сег- |
|
мент рисуется противчасо вой стрелки |
Таблица 10.4 (продолжение)
Метод |
Описание |
|
Рисует хорду и заливает отсекаемую ею часть эллипса. Эллипс, начальная и конечная точки определяются, как в методе Arc |
|
Рисует и закрашивает эллипс, вписанный в прямоугольник (Х1, Y1) - (Х2, Y2) |
|
Проводит линию текущим пером из текущей точки в (X, Y) |
|
Перемещает текущее положение пера (свойство PenPos) в точку (X, Y) |
|
Производит специальное копирование. Прямоугольник Source из битовой карты Bitmap копируется в прямоугольник Dest на канве; при этом цвет Color заменяется на цвет текущей кисти (Brush.Color). С помощью этого метода можно нарисовать "прозрачную" картинку. Для этого нужно выбрать соответствующий фону цвет кисти и затем заменить на него фоновый или наиболее часто встречающийся цвет битовой карты (см. Bitmap.TransparentColor) |
|
Производит копирование прямоугольника Source из канвы Canvas в прямоугольник Dest в области самого объекта |
|
Производит заливку прямоугольника (текущей кистью) |
|
Осуществляет рисование контура прямоугольника цветом текущей кисти (без заполнения) |
|
Осуществляет рисование графического объекта Graphic (точнее, вызов метода его рисования) в области с верхним левым углом (X, Y) |
|
Осуществляет рисование объекта Graphic в заданном прямоугольнике Rect. Если их размеры не совпадают, Graphic масштабируется |
|
Производит отрисовку прямоугольной рамки из точек (как на элементе, имеющем фокус ввода). Поскольку метод использует логическую операцию XOR (исключающее ИЛИ), повторный вызов для того же прямоугольника приводит изображение к начальному виду |
Таблица 10.4(окончание)