Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / DELPHI / ВМИПЛаб4.doc
Скачиваний:
20
Добавлен:
16.04.2013
Размер:
1.46 Mб
Скачать

Примеры использования свойств и методов канвы

Пример 1.В качестве примера рассмотрим подпрограмму, которая рисует автомобиль (рис.4). Текст подпрограммы включен в процедуру обработки события OnClick, происходящего при щелчке мышью по форме Form1. Автоматически формируемое имя этой процедуры -TForm1.FormClick (см. листинг 1).

После заголовка процедуры в разделе определения констант описываются массивы координат точек для вычерчивания отдельных частей атомобиля процедурой POLYGON. Далее описана процедура FILLCOLOR, которая устанавливает цвет пера и цвет ­кисти.

{------------------------------------------------------------------------------------------------------}

{ Листинг 1. Подпрограмма для изображения автомобиля } {------------------------------------------------------------------------------------------------------}

procedure TForm1.FormClick(Sender: TObject);

const

{шасси автомобиля}

osn:array[1..6] of TPoint=((x:485;y:355),(x:605;y:355),

(x:605;y:375),(x:385;y:375),

(x:385;y:365),(x:485;y:365));

{кабина}

kab:array[1..6] of TPoint=((x:485;y:365),(x:485;y:305),

(x:455;y:305),(x:445;y:335),

(x:395;y:345),(x:395;y:365));

{окно 1}

ok1:array[1..4] of TPoint=((x:480;y:335),(x:467;y:335),

(x:467;y:308),(x:480;y:308));

{окно 2}

ok2:array[1..4] of TPoint=((x:463;y:335),(x:448;y:335),

(x:457;y:308),(x:463;y:308));

{ Процедура установки цвета пера и цвета кисти }

procedure fillcolor(a,b:LongWord);

begin (fillcolor}

with Form1.Canvas do

begin

Pen.Color := a;

Brush.Color:= b;

end;

end; (fillcolor}

begin {FormClick}

Form1.WindowState := wsMaximized;{Установить макс.размер окна приложе-}

with Form1.Canvas do {ния, чтобы рисунок был виден полностью}

begin

fillcolor(clBlack,clBlue); FillRect(Rect(0,0,639,400)); {небо}

fillcolor(clBlack,clGreen);FillRect(Rect(0,400,639,479)); {трава}

fillcolor(clYellow,clYellow);Ellipse(550,10,630,90); {солнце}

fillcolor(clWhite,clWhite); Ellipse(20,20,80,80); {облако}

Ellipse(50,0,150,100); Ellipse(110,10,190,90);

fillcolor(clMaroon,clMaroon);FillRect(Rect(495,325,625,355));{кузов}

fillcolor(clGray,clGray); PolyGon(osn); {шасси автомобиля}

fillcolor(clSilver,clSilver);PolyGon(kab); {кабина}

fillcolor(clTeal,clTeal); PolyGon(ok1); {окно1}

PolyGon(ok2); {окно2}

fillcolor(clBlack,clBlack);

Ellipse(400,350,450,400); Ellipse(540,350,590,400); {шины}

fillcolor(clSilver,clSilver);

Ellipse(415,365,435,385); Ellipse(555,365,575,385); {диски колес}

end;

end; {FormClick}

Рис.4. Результаты выполнения программы

Соседние файлы в папке DELPHI