Отчет17 (956691)
Текст из файла
Лабораторная работа 17.
Delphi. Программирование с использованием классов. Графика. Обработка события от нажатия клавиши мыши.
Задача: Разработать иерархию классов Delphi. Использовать виртуальный метод, наследование конструкторов, свойства. Разместить определение классов в отдельном модуле. Класс, позволяющий рисовать окружность некоторого размера с центром в точке, определенной нажатием левой клавиши мыши. Класс, позволяющий рисовать квадрат того же размера с центром в точке, определенной нажатием правой клавиши мыши.
Параметры задаются с использованием интерфейсных элементов.
В отчете показать иерархии используемых классов Delphi и разработанных классов, граф состояния пользовательского интерфейса и объектную декомпозицию.
Объектная декомпозиция:
Активизировать
Главное окно
приложения
Квадрат
Круг
1 1
2 2
3 3 3 3
-
Создать и нарисовать
-
Изменить размер
-
Уничтожить
Граф состояния интерфейса:
Главное
окно приложения
Диаграмма классов:
Текст программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ImageMouseDown(Sender: TObject; Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
Var A:TVidFig; x,y,FRadius:Word;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Canvas.Rectangle(-100,-100,1000,1000);
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
Image1.Canvas.Brush.Color:=clWhite;
Image1.Canvas.Pen.Color:=clBlack;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Canvas.Brush.Color:=clWhite;
Image1.Canvas.Pen.Color:=clBlack;
Edit1.Text:='20';
end;
procedure TForm1.ImageMouseDown(Sender: TObject; Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
A.Free;
if Button=mbLeft then
begin
A:=TKrug.Create(Image1,X,Y,strtoint(Edit1.Text),Image1.Canvas.Pen.Color);
end;
if Button=mbRight then
begin
A:=TKvadrat.Create(Image1,X,Y,strtoint(Edit1.Text),Image1.Canvas.Pen.Color);
end;
end;
initialization
finalization A.Free;
end.
unit Unit2;
interface
uses extctrls,Graphics;
Type TVidFig=class
private x,y,FRadius:Word;
FColor:TColor; Image:TImage;
procedure Razmer(rr:word);
procedure Clear;
public
Constructor Create(aImage:TImage;xx,yy,rr:Word;aColor:TColor);
Procedure Ris; virtual; abstract;
Property Radius:Word write Razmer;
end;
TKrug=class(TVidFig)
public Procedure Ris; override;
end;
TKvadrat=class(TVidFig)
public Procedure Ris; override;
end;
implementation
uses Unit1;
constructor TVidFig.Create;
begin
inherited Create;
Image:=aImage;
x:=xx;
y:=yy;
FRadius:=rr;
Ris;
end;
procedure TVidFig.Razmer;
begin Clear;
FRadius:=rr;
Ris;
end;
procedure TVidFig.Clear;
begin
Ris;
end;
procedure TKrug.Ris;
begin
Image.Canvas.Pen.Color:=FColor;
Image.Canvas.Ellipse(x-FRadius,y-FRadius,x+FRadius,y+FRadius);
end;
procedure TKvadrat.Ris;
begin
Image.Canvas.Pen.Color:=FColor;
Image.Canvas.Rectangle(x-FRadius, y-FRadius,x+FRadius,y+FRadius);
end;
end.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.