- •Лабораторная работа № 2
- •Лабораторная работа № 3 Разработка приложений для обработки данных с использованием графики в Delphi
- •Лабораторная работа № 4 Работа с графикой в Delphi
- •Лабораторная работа № 5 Разработка элементов интерфейса приложений
- •Лабораторная работа № 7 Работа с текстом и рисованной таблицей
- •Лабораторная работа № 8 Работа с процедурами, функциями и файлами
Лабораторная работа № 4 Работа с графикой в Delphi
Цель работы: изучение объектов класса Canvas, окна графического редактора Paintbox. Содержание: построение графиков функций и геометрических фигур с использованием графического редактора Paintbox.
13 |
Окружность, эллипс, квадрат, скругленный прямоугольник |
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Button1: TButton;
PaintBox1: TPaintBox;
RadioGroup1: TRadioGroup;
PaintBox2: TPaintBox;
Button2: TButton;
Button3: TButton;
PaintBox3: TPaintBox;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
X:integer;
Y:integer;
rad:integer;
begin
with paintbox1, canvas do
begin
if RadioGroup1.ItemIndex=0 then
begin
X:=Width div 2;
Y:=Height div 2;
rad:=70;
Pen.Style:=psdash;
Pen.Color:=clred;{Цвет пера}
Pen.Width:=5;{Толщина пера}
Brush.Color:=clwhite;
Brush.Style:=bshorizontal;
Ellipse(X-rad, Y-rad, X+rad, Y+rad);
end;
if RadioGroup1.ItemIndex=1 then
begin
Pen.Style:=pssolid;
Pen.Color:=clyellow;
Pen.Width:=1;
Brush.Color:=
RGB(Random(256),
Random(256),
Random(256));
Brush.Style:=bssolid;
PolyGon([Point(90,30),Point(90,60),Point(120,60),Point(120,30)])
end;
if RadioGroup1.ItemIndex=2 then
begin
Pen.Style:=pssolid;
Pen.Color:=clBlue;
Pen.Width:=1;
Brush.Color:=
RGB(Random(256),
Random(256),
Random(256));
Brush.Style:=bssolid;
PolyGon([Point(60,0),Point(80,0),Point(90,20),Point(70,40),Point(50,20)])
end;
if RadioGroup1.ItemIndex=3 then
begin
Pen.Style:=pssolid;
Pen.Color:=clBlack;
Pen.Width:=1;
Brush.Color:=
RGB(Random(16),
Random(16),
Random(16));
Brush.Style:=bssolid;
RoundRect( 100, 100, 200, 150, 40, 40);
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var x,y2:real;
i:integer;
begin
with paintbox2, canvas do
begin
Brush.Color:=clgreen;{Цвет фона}
pen.Width:=3;
rectangle(0,0,width,height);{Область рисования}
pen.Color:=clblack; {Цвет пера}
{Рисование осей}
moveto(0,height div 2);{Холостой ход}
lineto(width, height div 2); {Гори-зонтальная ось}
moveto(width div 2,0);{Холостой ход}
lineto(width div 2,height); {Верти-кальная ось}
{Параметры рисования графи-ков}
pen.Color:=clred;
pen.Width:=3;
pen.Style:=pssolid;
moveto(0,height div 3);
begin
x:= 3.14;
while i <= x do begin
y2 := abs(sin (i) + cos(i));
PaintBox2.Canvas.Pixels[round(x)+ width div 2,round(y2)+ height div 2] :=clBlack;
end;
end;
begin
x:= 3.14;
while i <=x do begin
y2 := abs(sin (i)) + abs(cos(i));
PaintBox2.Canvas.Pixels[round(x)+ width div 2,round(y2)+ height div 2] :=clred;
end;
end;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);begin
with paintbox3, canvas do
begin
Pen.Style:=psdash;
Pen.Color:=clBlack;{Цвет пера}
Pen.Width:=2;{Толщина пера}
Brush.Color:=clwhite;
Font.Size:=12;
Ellipse(50,0,200,30);
TextOut(105,5,'Start');
Rectangle(50,50,200,70);
Font.Size:=10;
TextOut(55,52,'val(Edit1.Text,N,code)');
moveTo(125,30); LineTo(125,50);
polygon([Point(125,100),Point(50,120),Point(125,140),Point(200,120)]);
TextOut(110,110,'N>30');
moveTo(125,70);
LineTo(125,100);
Rectangle(0,170,250,200);
TextOut(10,180,'MessageDlg(От 1 до 30 введите)');
moveTo(125,140);
LineTo(125,170);
TextOut(100,145,'DA');
polygon([Point(310,100),Point(240,120),Point(310,140),Point(390,120)]);
TextOut(305,110,'1');
moveTo(200,120);
LineTo(240,120);
polygon([Point(495,100),Point(430,120),Point(495,140),Point(580,120)]);
TextOut(490,115,'...7');
moveTo(390,120);
LineTo(430,120);
Rectangle(300,220,540,250);
Font.Size:=8;
TextOut(320,225,'memo1.Lines.Add(ponedelnic)...(voskresenie)');
moveTo(310,140);
LineTo(310,220);
moveTo(495,140);
LineTo(495,220);
Ellipse(50,300,200,330);
Font.Size:=12;
TextOut(105,305,'End');
moveTo(125,200);
LineTo(125,300);
moveTo(300,235);
LineTo(125,235);
end;
end;
end.