Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Технология программирования / ИТ / 8_Графическая подсистема Delphi.ppt
Скачиваний:
49
Добавлен:
17.05.2015
Размер:
513.02 Кб
Скачать

Графическая подсистема 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 (отпускание левой кнопки мыши)

Пример

Все эти события имеют параметры – координаты точки, в которой произошло событие