Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Объектно-ориентированное программирование.docx
Скачиваний:
20
Добавлен:
31.08.2019
Размер:
112.85 Кб
Скачать
  1. Свойство Canvas. Назначение, свойства объекта Canvas.

Canvas не является компонентом, но поскольку многие компоненты, в частности, формы, имеют канву и канва предоставляет возможность выводить различную графическую информацию. Канва представляет собой область компонента, на которой можно рисовать или отображать готовые изображения. Она содержит свойства и методы, существенно упрощающие графику Delphi.

В предыдущих главах мы уже встречались с графикой Delphi и немного рисовали. Когда мы делали это, то обращались к объекту Canvas. Практически у всех компонентов Delphi есть это объектное свойство. Почему объектное? Да потому, что Canvas имеет тип объекта TCanvas. To есть в нашем компоненте за рисование отвечает объект. Таким образом, если компонент поддерживает рисование, то у него обязано быть такое свойство. Canvas в переводе с английского означает холст. Получается, что каждый компонент — это холст, на котором нарисовано изображение компонента. Взглянем на кнопку. На самом деле это не кнопка, а холст, на котором нарисованы изображения кнопки и текста. Когда вы щелкаете кнопкой мыши по кнопке, изображение изменяется и приобретает вид нажатой кнопки.

Графика Windows действительно представляет рисование на холсте. А для этого необходимы две вещи — карандаш для рисования (реп) и кисть для закраски (Brush). Именно такие свойства и присутствуют у объекта canvas. Карандаш используется для рисования линий и контуров, а кисть используется для закраски замкнутых областей; У обоих есть свои свойства (цвет,тип и т. д.),

Свойство объектов Canvas

У ряда объектов из библиотеки визуальных компонент есть свойство Canvas (канва), которое предоставляет простой путь для рисования на них. Эти объекты - TBitmap, TComboBox, TDBComboBox, TDBGrid, TDBListBox, TDirectoryListBox, TDrawGrid, TFileListBox, TForm, TImage, TListBox, TOutline, TPaintBox, TPrinter, TStringGrid. Canvas является в свою очередь объектом, объединяющим в себе поле для рисования, карандаш (Pen), кисть (Brush) и шрифт (Font). Canvas обладает также рядом графических методов : Draw, TextOut, Arc, Rectangle и др. Используя Canvas, Вы можете воспроизводить на форме любые графические объекты - картинки, многоугольники, текст и т.п. без использования компонент TImage,TShape и TLabel (т.е. без использования дополнительных ресурсов), однако при этом Вы должны обрабатывать событие OnPaint того объекта, на канве которого Вы рисуете. Рассмотрим подробнее свойства и методы объекта Canvas.

Свойства Canvas :

Brush -кисть, является объектом со своим набором свойств:

Bitmap- картинка размером строго 8x8, используется для заполнения (заливки) области на экране.

Color - цвет заливки. Style - предопределенный стиль заливки; это свойство конкурирует со свойством Bitmap - какое свойство Вы определили последним, то и будет определять вид заливки. Handle - данное свойство дает возможность использовать кисть в прямых вызовах процедур Windows API . ClipRect - (только чтение) прямоугольник, на котором происходит графический вывод. CopyMode- свойство определяет, каким образом будет происходить копирование (метод CopyRect) на данную канву изображения из другого места: один к одному, с инверсией изображения и др. Font - шрифт, которым выводится текст (метод TextOut). Handle - данное свойство используется для прямых вызовов Windows API. Pen - карандаш, определяет вид линий; как и кисть (Brush) является объектом с набором свойств: Color - цвет линии. Handle - для прямых вызовов Windows API. Mode - режим вывода: простая линия, с инвертированием, с выполнением исключающего или и др. Style - стиль вывода: линия, пунктир и др. Width - ширина линии в точках. PenPos - текущая позиция карандаша, карандаш рекомендуется перемещать с помощью метода MoveTo, а не прямой установкой данного свойства. Pixels - двухмерный массив элементов изображения (pixel), с его помощью Вы получаете доступ к каждой отдельной точке изображения.