- •1.Текстовые компоненты Label, Edit, Memo. Кнопка Button
- •Пример 1.1. Задание - Составить программу, вычисляющую корни квадратного уравнения
- •2. Классы и компоненты Delphi,
- •Interface
- •Interface
- •Interface
- •3. Панель переключателей RadioGroup
- •Interface
- •4. Списки: ListBox и ComboBox
- •Interface
- •Interface
- •5. Таблица StringGrid
- •Полный текст модуля Unit1.Pas
- •Interface
- •6. Создание меню. Компоненты MainMenu и PopupMenu
- •Interface
- •Interface
- •7. Диалоговые окна.
- •Interface
Interface
uses
Windows, Messages, SysUtils, 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);
х2 := trunc(cos(angle2) * PaintBox1.Width/2 + PaintBox1.Width/2);
у2 := PaintBox1.Height - trunc(sin(angle2) * PaintBox1.Height/2
+ PaintBox1.Height/2);
PainBox1.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.
Для рисования сектора круга в обработчике TForm1.PaintBox1Paint определена процедура sector:
procedure sector(clr : TColor; angle1, angle2 : real; msg : string);
имеющая следующие параметры:
clr - цвет, которым закрашен сектор;
angle1 - начальный угол, т.е. угол между осью ОХ и правой стороной сектора
(задается в радианах);
angle2 - конечный угол, т.е. угол между осью ОХ и левой стороной сектора
(задается в радианах);
msg - текст, используемый для подписи сектора.
Выполним команду главного меню File|Save All и сохраним проект под именем Project3, модуль под именем Unit3 в папке D:\MyProject\Diagram. Запустим проект на выполнение. Для сокращения записи при обращении к свойствам и полям объектов можно использовать оператор присоединения with. В качестве примера приведем код обработчика
TForm1.PaintBox1Paint с использованием оператора with:
procedure TForm1.PaintBox1Paint(Sender: TObject);
procedure sector(clr : TColor; angle1, angle2 : real;
msg : string);
var x1, x2, у1, у2 : integer;
begin
with PaintBox1,Canvas do
begin
Brush.Color := clr;
x1 := trunc(cos(angle1) * Width/2 + Width/2);
y1 := Height - trunc(sin(angle1) * Height/2 + Height/2);
x2 := trunc(cos(angle2)* Width/2 + Width/2);
y2 := Height - trunc(sin(angle2)* Height/2 + Height/2);
Pie(0, 0, Width, Height, x1, y1, x2, y2);
Font.Name := ‘Arial’;
Font.Size := 8;
Font.Color := clBlack;
Font.Style := [fsBold];
TextOut(trunc((xl+x2)/2) - 20, trunc((y1 + y2) / 2), msg);
end;
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;