- •Лабораторная работа №3 Динамические структуры данных. Класс как динамическая структура данных. Создания пользовательского класса в Delphi.
- •1. Цель работы:
- •2. Порядок выполнения работы и требования к отчету:
- •3. Теоретические сведения
- •4. Задание на лабораторную работу
- •X,y:integer; //текущие координаты точки
- •X,y,w:integer;
- •Implementation
- •I, j:Integer;
4. Задание на лабораторную работу
Запустить среду программирования Delphi;
Изучить приведенные ниже примеры и пример приложения «Лабораторная работа №3
Разработать программу согласно варианту задания:
Разработать интерфейс приложения, используя необходимые компоненты;
Создать объявление класса «точка» и реализовать все необходимые методы данного класса;
При отображении точки использовать технологию с двойным буфером отображения (реализовать работу с динамическим изображением в памяти)
Сделать точку крупнее;
Создать необходимые обработчики событий;
Произвести компиляцию и запуск программы;
Пример, класс «точка»:
Type Point=class
public
// метод-конструктор класса «точка»
constructor Create(px,py:integer;c:TColor);
// перемести точку в координаты x,y
procedure Move(px,py:integer);
// получить координаты точки
function GetX:integer;
function GetY:integer;
// задать цвет точки
procedure SetColor(c:TColor);
// отобразить точку на плоскости рисования canvas
procedure Draw(canvas:TCanvas);
private
x,y:integer; //текущие координаты точки
col:TColor; //цвет точки
end;
Методы этого класса реализуются в разделе implementation следующим образом:
constructor Point.Create(px,py:integer;c:TColor);
begin
x:=px; // инициализация поля x
...
end;
function Point.GetX:integer;
begin
result:=x;
end;
procedure Point.SetColor(c:TColor);
begin
...
end;
procedure Point.Draw(canvas:TCanvas);
begin
// вывод точки в координатах x,y с цветом col на canvas
…
end;
и т.д.
Пример создание и использования объекта «точка»:
Var pt:Point;
Begin
// создание объекта (красная точка с координатами 150,150)
pt:=Point.Create(150,150,clRed);
// переместить точку влево на одну единицу
pt.Move(pt.GetX-1,pt.GetY);
// нарисовать точку в PaintBox1
pt.Draw(PaintBox1.Canvas);
// удаление объекта
pt.Free;
End;
Результат работы:
Листинг:
Type Point=class
public
// метод-конструктор класса «точка»
constructor Create(px,py:integer;c:TColor);
// перемести точку в координаты x,y
procedure Move(px,py:integer);
// получить координаты точки
function GetX:integer;
function GetY:integer;
// задать цвет точки
procedure SetColor(c:TColor);
// отобразить точку на плоскости рисования canvas
procedure Draw(canvas:TCanvas);
private
X,y:integer; //текущие координаты точки
col:TColor; //цвет точки
end;
type
TForm1 = class(TForm)
Button1: TButton;
Timer1: TTimer;
PaintBox1: TPaintBox;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
pt:Point;
b:TBitmap;