
- •Графическая подсистема Delphi
- •Графическая подсистема Delphi
- •Canvas обладает свойствами Brush и Pen и всеми их элементами, аналогично классу TShape.
- •Пример
- •Методы класса TCanvas
- •Заливка замкнутой области
- •Рисование с использованием циклов
- •Рисование с использованием циклов
- •Рисование с использованием циклов
- •Класс TImage (вкладка Additional)
- •Построение графиков
- •Построение графиков
- •Построение графиков

Графическая подсистема Delphi 
1

Графическая подсистема Delphi
Графическая подсистема Delphi инкапсулирована (иными словами, спрятана) в свойстве Canvas (объект класса TCanvas)
Этим свойством обладают многие визуальные компоненты или их свойства, в частности объект Form1
Свойство Canvas содержит двумерный массив пикселей, точнее, их цветовых кодов Pixels. Например, инструкция
Form1.Canvas.Pixels[100,50]:=clRed;
означает, что точка с координатами (100;50) на форме будет окрашена в красный цвет. Таким образом, рисование может быть выполнено поточечно.
2

Canvas обладает свойствами Brush и Pen и всеми их элементами, аналогично классу TShape. Для того чтобы задать цвет рисования фигуры, нужно
установить соответствующие значения этих свойств до рисования.
Например, такой фрагмент программы установит цвет заливки и линий и толщину линий:
Canvas.Brush.Color:=clYellow;
Canvas.Pen.Color:=clBlue;
Canvas.Pen.Width:=2;
Можно устанавливать эти свойства и с помощью стандартных диалогов.
3

Пример
4

Методы класса TCanvas
Метод |
Пояснение |
Пример |
|
|
|
5

Заливка замкнутой области
Заливка области производится, начиная от точки (x;y). Параметр type может принимать значение:
fsBorder (заливается область до границы, цвет которой определяется параметром color);
fsSurface (заливается область, цвет которой определяется параметром color до границы другого цвета).
Например:
Image1.Canvas.Brush.Color:=clRed;
Image1.Canvas.FloodFill(100,50,clBlack,fsBorder);
Будет залита красным цветом область от точки (100;50) до границы черного цвета.
Image1.Canvas.Brush.Color:=clRed;
Image1.Canvas.FloodFill(100,50,clWhite,fsSurface)
Будет залита красным область белого цвета от точки (100;50).
6

Рисование с использованием циклов
Пример 1. Простой цикл
x:=200;y:=80;
Canvas.MoveTo(x,y); for i:=1 to 5 do begin
Canvas.LineTo(x+50,y+20);
Canvas.LineTo(x,y+40);
y:=y+40;
end;
7

Рисование с использованием циклов
Пример 2. Вложенные циклы
x:=300;
for i:=1 to 3 do begin y:=80;
for j:=1 to 4 do begin
Сanvas.Ellipse(x,y,x+30,y+30);
y:=y+30;
end;
x:=x+30;
end;
8

Рисование с использованием циклов
Пример 3. Последовательные |
|
|
циклы |
|
|
x:=30;y:=80; |
|
|
Canvas.Rectangle(x,y,x+50,y+200); |
|
|
for j:=1 to 4 do begin |
|
|
canvas.Ellipse(x,y,x+50,y+50); |
|
|
y:=y+50; |
|
|
end; |
|
|
Canvas.Pen.Color:=clRed; |
|
|
x:=30;y:=80; |
|
|
for i:=1 to 4 do begin |
|
|
Canvas.MoveTo(x,y); |
|
|
Сanvas.LineTo(x+50,y+50); |
|
|
y:=y+50; |
|
|
end; |
|
|
x:=80;y:=80; |
|
|
for i:=1 to 4 do begin |
|
|
Canvas.MoveTo(x,y); |
Запуск |
|
Canvas.LineTo(x-50,y+50); |
||
|
||
y:=y+50; |
9 |
|
end; |
|

Класс TImage (вкладка Additional)
Основное свойство: Picture
Основные методы: LoadFromFile, SaveToFile (работают только с форматом bmp) Примеры:
image1.Picture.LoadFromFile(‘рисунок.bmp’);
image1.Picture.SaveToFile(‘рисунок.bmp’);
Основные события
onMouseDown (нажатие левой кнопки мыши) onMouseMove (перемещение курсора мыши) onMouseUp (отпускание левой кнопки мыши)
Пример
Все эти события имеют параметры – координаты точки, в которой произошло событие