- •Графические возможности Lazarus
- •Свойство canvas — это объект
- •Карандаш и кисть
- •Карандаш
- •Значение свойства Color определяет цвет линии
- •Значение свойства Реn.Style определяет вид линии
- •Значение свойства Реп. Mode влияет на цвет линии
- •Кисть
- •Значения свойства Brush.Style определяют тип
- •Пример стилей заполнения областей,
- •Рисовать на поверхности формы можно процедурой TForm1.FormPaint
- •Вывод текста
- •Свойства объекта TFont
- •Область вывода текста закрашивается текущим цветом кисти. Поэтому перед выводом текста свойству Brush.Color
- •Следующий фрагмент программы демонстрирует использование функции Textout для вывода текста на поверхность формы:
- •Методы вычерчивания графических примитивов
- •Точка
- •Линия
- •Прямоугольник
- •Прямоугольник со скругленными углами
- •Окружность и эллипс
- •Дуга
- •Сектор
- •Нормальный
- •Begin
- •with paintbox1.canvas do begin
Рисовать на поверхности формы можно процедурой TForm1.FormPaint
procedure TForm1.FormPaint(Sender: TObject);
Для сокращения записи длинных свойств и методов рисования используется команда with:
with Form1.Canvas do begin
//установить характеристики кисти
Bruch.Color := clRed; Bruch.Style := bsDiagrCross;
//нарисовать заштрихованный в клеточку прямоугольник Rectangle(10,10,100,100) ;
end;
Вывод текста
Для вывода текста на поверхность графического объекта используется метод TextOut.
Инструкция вызова метода TextOut в общем виде выглядит следующим образом:
Объект.Canvas.TextOut(x, у, Текст)
где:
объект — имя объекта, на поверхность которого выводится текст; х, у — координаты точки графической поверхности, от которой выполняется вывод текста (рис. 10.3);
Текст — переменная или константа символьного типа, значение которой определяет выводимый методом текст.
Свойства объекта TFont
Шрифт определяется значением свойства Font объекта canvas.
Свойство Font представляет собой объект типа
TFont.
Свойство |
Определяет |
|
Name |
Используемый шрифт. В качестве значения |
|
следует использовать название шрифта, |
||
|
например Arial |
|
|
Размер шрифта в пунктах (points). Пункт— это единица |
|
Size |
измерения размера шрифта, используемая в полиграфии. |
|
|
Один пункт равен 1/72 дюйма |
|
|
Стиль начертания символов. Константы: |
|
|
fsBold (полужирный), fsltalic (курсив), f sUnderline |
|
Style |
(подчеркнутый), f sStrikeOut (перечеркнутый). |
|
|
Можно комбинировать необходимые стили. Например, |
|
|
Объект. Canvas . Font . Style : = [fsBold, fs Italic] |
|
Color |
Цвет символов. В качестве значения можно использовать |
|
константу типа Tcolor |
||
|
Область вывода текста закрашивается текущим цветом кисти. Поэтому перед выводом текста свойству Brush.Color нужно присвоить значение bsClear или задать цвет кисти, совпадающий с цветом поверхности, на которую выводится текст.
Класс TColor = класс цвета точки TColor
В тексте программы цвет может быть выбран с помощью компонента TColorDialog , вызываемого методом Execute . Метод Execute компонента TColorDialog отображает диалоговое окно Цвет, используемое для выбора цвета.
if ColorDialog1.Execute then begin Color:= ColorDialog1.Color;
Для задания цвета можно использовать функцию RGB
Color:= RGB(50, 200, 50); // смешение трех цветов Red, Green, Blue
//Доля каждого цвета может меняться от 0 до 255
Следующий фрагмент программы демонстрирует использование функции Textout для вывода текста на поверхность формы:
with Form1.Canvas do begin
// установить характеристики шрифта
Font.Name := 'Tahoma'; Font.Size := 20;
Font.Style := [fsltalic, fsBold] ;
Brush.Style := bsClear; // область вывода текста не закрашивается
TextOut(0, 10, ‘Lazarus'); end;
После вывода текста методом Textout указатель вывода (карандаш) перемещается в правый верхний угол области вывода текста.
Методы вычерчивания графических примитивов
Любая картинка, чертеж, схема могут рассматриваться как совокупность графических примитивов: точек, линий, окружностей, дуг и др. Таким образом, для того чтобы на экране появилась нужная картинка, программа должна обеспечить вычерчивание (вывод) графических примитивов, составляющих эту картинку.
Вычерчивание графических примитивов на поверхности компонента (формы или области вывода иллюстрации) осуществляется применением соответствующих методов к свойству Canvas этого компонента.
Точка
Поверхности, на которую программа может осуществлять вывод графики, соответствует объект Canvas. Свойство
Pixels, представляющее собой двумерный массив типа TColor, содержит информацию о цвете каждой точки графической поверхности. Используя свойство Pixels, можно задать требуемый цвет для любой точки графической поверхности, т. е. "нарисовать" точку. Например, инструкция
Form1.Canvas.Pixels[10,10]:=clRed
окрашивает точку поверхности формы в красный цвет.
Размерность массива Pixels определяется размером графической поверхности.
Свойство Pixels можно использовать для построения графиков.
Линия
Вычерчивание прямой линии осуществляет метод LinеТо, инструкция вызова которого в общем виде выглядит следующим образом:
Компонент.Canvas.LineTo(x,у)
Метод LinеТо вычерчивает прямую линию от текущей позиции карандаша в точку с координатами, указанными при вызове метода.
Начальную точку линии можно задать, переместив карандаш в нужную точку графической поверхности. Сделать это можно при помощи метода MoveTo, указав в качестве параметров координаты нового положения карандаша. Вид линии (цвет, толщина и стиль) определяется значениями свойств объекта Pen графической поверхности, на которой вычерчивается линия.
Прямоугольник
Прямоугольник вычерчивается методом Rectangle, инструкция вызова которого в общем виде выглядит следующим образом:
Объект.Canvas.Rectangle(x1, y1,x2, y2)
где:
объект — имя объекта (компонента), на поверхности которого выполняется вычерчивание;
x1, y1 и х2, у2 — координаты левого верхнего и правого нижнего углов прямоугольника.