Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Лабораторная работа № 7
Создание изображения с помощью
компонента PaintBox.
Компонент PaintBox представляет в наше расположение окно, в котором мы можем создать произвольное изображение. Программный код, создающий изображение, должен располагаться в обработчике события OnPaint.
Нарисуем круговую диаграмму, содержащую четыре сектора красного, белого, синего и желтого цвета. Для каждого сектора выведем текст, содержащей размер сектора в процентах.
Текст модуля Unit1.pas
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
PaintBox1: TPaintBox;
procedure PaintBox1Paint(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.PaintBox1Paint(Sender: TObject);
procedure sector(clr:TColor;angle1, angle2:real;msg:string);
var x1,x2,y1,y2:integer;
begin
PaintBox1.Canvas.Brush.Color:=clr;
x1:=trunc(cos(angle1)*PaintBox1.Width/2+PaintBox1.Width/2);
y1:=PaintBox1.Height-trunc(sin(angle1)*PaintBox1.Height/2
+PaintBox1.Height/2);
x2:=trunc(cos(angle2)*PaintBox1.Width/2+PaintBox1.Width/2);
y2:=PaintBox1.Height-trunc(sin(angle2)*PaintBox1.Height/2
+PaintBox1.Height/2);
PaintBox1.Canvas.Pie(0,0,PaintBox1.Width,PaintBox1.Height,x1,y1,x2,y2);
PaintBox1.Font.Name:='arial';
PaintBox1.Font.Size:=8;
PaintBox1.Font.Color:=clBlack;
PaintBox1.Font.Style:=[fsBold];
PaintBox1.Canvas.TextOut(trunc((x1+x2)/2)-20,trunc((y1+y2)/2),msg);
end;
begin
sector(clLime,0,pi/3,'16,5%');
sector(clWhite,pi/3,5*pi/6,'25%');
sector(clSkyBlue,5*pi/6,7*pi/5,'28,4%');
sector(clYellow,7*pi/5,2*pi,'30%');
end;
end.