Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Pascal и Delphi / Иллюстрированный самоучитель по Delphi 6 / Часть II . Язык Object Pascal / Классы общего назначения / Графический инструментарий /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Класс TCanvas - Программирование от RIN.RU
Класс TCanvas

Этот класс создает "канву", на которой можно рисовать чертежными инструментами - пером, кистью и шрифтом. Объекты класса ЕСаnvas автоматически создаются для всех видимых компонентов, которые должны уметь нарисовать себя. Они инкапсулируют объекты Font, pen, Brush, а также многочисленные методы, использующие эти объекты.


Свойства класса:
property Brush: TBrush; property ClipRect: TRect; Объект-кисть Определяет текущие размеры области, нуждающейся в прорисовке
property CopyMode: TCopyMode; Устанавливает способ взаимодействия растрового изображения с цветом фона
property Font: TFont; Объект-шрифт
property Handle: Integer; Дескриптор канвы. Используется при непосредственном обращении к API-функциям Windows
property LockCount: Integers;Счетчик блокировок канвы. Увеличивается на единицу при каждом обращении к методу Lock и уменьшается на единицу при обращении к Unlock
property Pen: TPen; Объект-перо
property PenPos:TPoint; Определяет текущее положение пера в пикселях относительно левого верхнего угла канвы
property Pixels[X,Y:Integer]: TColor; Массив пикселей канвы



Свойство copyMode используется при копировании части одной канвы (источника) в другую (приемник) методом copyRect и может иметь одно из следующих значений:


cmBlackness Заполняет область рисования черным цветом
cmDestInvert Заполняет область рисования инверсным цветом фона
cmMergeCopy Объединяет изображение на канве и копируемое изображение операцией and
cmMergePaint Объединяет изображение на канве и копируемое изображение операцией OR
cmNotSrcCopy Копирует на канву инверсное изображение источника
cmNotSrcErase Объединяет изображение на канве и копируемое изображение операцией OR и инвертирует полученное
cmPatCopy Копирует образец источника
cmPatInvertКомбинирует образец источника с изображением на канве с помощью операции XOR
cmPatPaint Комбинирует изображение источника с его образцом с помощью операции OR, затем полученное объединяется с изображением на канве также с помощью OR
cmSrcAnd Объединяет изображение источника и канвы с помощью операции AND
cmSrcCopy Копирует изображение источника на канву
cmSrcErase Инвертирует изображение на канве и объединяет результат с изображением источника операцией AND
cmSrcInvert Объединяет изображение на канве и источник операцией XOR
cmSrcPaint Объединяет изображение на канве и источник операцией OR
cmWhitness Заполняет область рисования белым цветом



С помощью свойства 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, X4, Y4: Integers;)Чертит сегмент эллипса в охватывающем прямоугольнике (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)/td>
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 Rectangle(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 счетчик блокировок канвы



Вперед  >>>
 1  2  3 


 8  Комментарии к статье  8 8  Обсудить в чате

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь