Этот класс создает “канву”, на которой можно рисовать чертежными инструментами - пером, кистью и шрифтом. Объекты класса ЕСаnvas автоматически создаются для всех видимых компонентов, которые должны уметь нарисовать себя. Они инкапсулируют объекты Font, pen, Brush, а также многочисленные методы, использующие эти объекты.
Свойство copyMode используется при копировании части одной канвы (источника) в другую (приемник) методом copyRect и может иметь одно из следующих значений:
С помощью свойства pixels все пиксели канвы представляются в виде двухмерного массива точек. Изменяя цвет пикселей, можно прорисовывать изображение по отдельным точкам.
procedure Arc(X1, Y1, X2, Y2, ХЗ, Y3, Х4, Y4: Integer);
| Чертит дугу эллипса в охватывающем прямоугольнике (Xl,Yl)-(X2,Y2). Начало дуги лежит на пересечении эллипса и луча, проведенного из его центра в точку (ХЗ, Y3), а конец - на пересечении с лучом из центра в точку (Х4, Y4). Дуга чертится против часовой стрелки (см. рис. 16.4, а)
|
procedure BrushCopy
(const Dest: TRect;
Bitmap: TBitmap;
const Source: TRect;
Color: TColor);
| Копирует часть изображения Source на участок канвы Dest. Color указывает цвет в Dest, который должен заменяться на цвет кисти канвы. Метод введен для совместимости с ранними версиями Delphi. Вместо него следует пользоваться классом Т Image List
|
procedure Chord(XI,
Yl, X2, Y2, X3, Y3,
| Чертит сегмент эллипса в охватывающем прямоуголь нике (XI, У1) - (X2, Y2). Начало дуги сегмента лежит на пересечении эллипса и луча, проведенного из его центра в точку (X3, Y3), а конец - на пересечении с лучом из центра в точку (X4, Y4). Дуга сегмента чертится против часовой стрелки, а начальная и конечная точки дуги соединяются прямой (см. рис. 16.4, б)
|
procedure CopyRect (Dest: TRect; Canvas: TCanvas;Source: TRect) ;
| Копирует изображение Source канвы Canvas в участок Dest текущей канвы. При этом разнообразные специальные эффекты достигаются с помощью свойства CopyMode
|
procedure Draw(X, Y:Integer; Graphic:TGraphic) ;
| Осуществляет прорисовку графического объекта Graphic так, чтобы левый верхний угол объекта расположился в точке (X, Y)
|
procedure DrawFocusRect (const Rect:TRect) ;
| Прорисовывает прямоугольник с помощью операции XOR, поэтому повторная прорисовка уничтожает ранее вычерченный прямоугольник. Используется в основном для прорисовки нестандартных интерфейсных элементов при получении ими фокуса ввода и при потере его
|
procedure Ellipse(XI, Yl, X2,
Y2: Integers;
| Чертит эллипс в охватывающем прямоугольнике (XI, Yl) - (X2, Y2). Заполняет внутреннее пространство эллипса текущей кистью
|
procedure FillRect(const Rect: TRect);
| Заполняет текущей кистью прямоугольную область Rect, включая ее левую и верхнюю границы, но не затрагивая правую и нижнюю границы
|
procedure Flood-
Fill(X, Y: Integer;
Color: TColor; Fill Style: TFillStyle);
| Производит заливку канвы текущей кистью. Залив
ка начинается с точки (X, Y) и распространяется вовсе стороны от нее. Если FillStyle=fsSurface, заливка распространяется на все соседние точки с цветом Color. Если FillStyle=fsBorder, наоборот, заливка прекращается на точках с этим цветом
|
procedure FrameRect(const Rect: TRect);
| Очерчивает границы прямоугольника Rect текущей кистью толщиной в 1 пиксель без заполнения внутренней части прямоугольника
|
procedure LineTo(X,
Y: Integer);
| Чертит линию от текущего положения пера до точки
(X,Y)
|
procedure Lock;
| Блокирует канву в многопоточных приложениях для предотвращения использования канвы в других по токах команд
|
procedure MoveTo(X,Y: Integer);
| Перемещает перо в положение (X, Y) без вычерчивания линий
|
procedure Pie(XI,
Yl, X2, Y2, X3, Y3,
X4, Y4: Longint);
| Рисует сектор эллипса в охватывающем прямоугольнике (XI, Yl) - (X2, Y2). Начало дуги лежит на пересечении эллипса и луча, проведенного из его центра в точку (X3, Y3), а конец - на пересечении случом из центра в точку (X4, Y4). Дуга чертится против часовой стрелки. Начало и конец дуги соединяются прямыми с ее центром (см. рис. 16.4, в)
|
procedure Polygon.
(Points: array of TPoint) ;
| Вычерчивает пером многоугольник по точкам, заданным в массиве Points. Конечная точка соединяется с начальной и многоугольник заполняется кистью. Без заполнения используйте - Polyline
|
procedure Polyline
(Points: array of
TPoint);
| Вычерчивает пером ломаную прямую по точкам, заданным в массиве Points
|
procedure Rectan
gle(XI, Yl, X2, Y2:
Integer);
| Вычерчивает и заполняет прямоугольник (XI, Yl) -S(X2, Y2). Для вычерчивания без заполнения используйте FrameRect или Polyline
|
procedure Refresh;
| Устанавливает в канве умалчиваемые шрифт и кисть
|
procedure RoundRect(Xl, Yl, X2,Y2, X3, Y3: Inte ger) ;
| Вычерчивает и заполняет прямоугольник (XI,Yl)- (X2, Y2) со скругленными углами. Прямоугольник (XI, Yl) - (X3, Y3) определяет дугу эллипса для округления углов (см. рис. 16.4, г)
|
procedure Stretch Draw (const Rect:TRect; Graphic:
TGraphic );
| Вычерчивает и при необходимости масштабирует графический объект Graphic так, чтобы он полностью занял прямоугольник Rect
|
function TextExtent
(const Text:String): TSize;
| Возвращает ширину и высоту прямоугольника, охватывающего текстовую строку Text
|
function TextHeight
(const Text: String): Integer;
| Возвращает высоту прямоугольника, охватывающего текстовую строку Text
|
procedure TextOut(X,
Y: Integer; const Text: String) ;
| Выводит текстовую строку Text так, чтобы левый
верхний угол прямоугольника, охватывающего текст, располагался в точке (X, Y)
|
procedure TextRect(Rect: TRect; X, Y:
Integer; const Text:
String) ;
| Выводит текстовую строку Text так, чтобы левый верхний угол прямоугольника, охватывающего текст, располагался в точке (х, Y). Если при этом какая-либо часть надписи выходит из границ прямоугольника Rect, она отсекается и не будет видна
|
function TextWidth
(const Text:String): Integer;
| Возвращает ширину прямоугольника, охватывающего текстовую строку Text
|
function TryLock:
Boolean;
| Пытается заблокировать канву. Если она не заблокирована другим потоком команд, - True, в противном случае ничего не делает и возвращает False
|
procedure Unlock;
| Уменьшает на 1 счетчик блокировок канвы
|