108 lines
1.8 KiB
ObjectPascal
108 lines
1.8 KiB
ObjectPascal
type
|
|
{ TPoint }
|
|
|
|
TMyPoint = class
|
|
private
|
|
FX: Integer;
|
|
FY: Integer;
|
|
public
|
|
constructor Create; overload;
|
|
constructor Create(X0: Integer; Y0: Integer); overload;
|
|
constructor Create(MyPoint: TMyPoint); overload;
|
|
destructor Destroy; override;
|
|
|
|
procedure Print; virtual;
|
|
|
|
property X: Integer read FX write FX;
|
|
property Y: Integer read FY write FY;
|
|
end;
|
|
|
|
{ TCircle }
|
|
|
|
TCircle = class(TMyPoint)
|
|
private
|
|
FR: Integer;
|
|
public
|
|
constructor Create(X0: Integer; Y0: Integer; R0: Integer); overload;
|
|
constructor Create(MyPoint: TMyPoint; R0: Integer); overload;
|
|
constructor Create(Circle: TCircle); overload;
|
|
destructor Destroy; override;
|
|
|
|
procedure Print; override;
|
|
|
|
property R: Integer read FR write FR;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses Dialogs;
|
|
|
|
{ TCircle }
|
|
|
|
constructor TCircle.Create(X0: Integer; Y0: Integer; R0: Integer);
|
|
begin
|
|
inherited Create(X0, Y0);
|
|
FR := R0;
|
|
end;
|
|
|
|
constructor TCircle.Create(MyPoint: TMyPoint; R0: Integer);
|
|
begin
|
|
inherited Create(MyPoint);
|
|
FR := R0;
|
|
end;
|
|
|
|
constructor TCircle.Create(Circle: TCircle);
|
|
begin
|
|
Create;
|
|
if not(Circle = Self) then
|
|
begin
|
|
FX := Circle.X;
|
|
FY := Circle.Y;
|
|
FR := Circle.R;
|
|
end;
|
|
end;
|
|
|
|
destructor TCircle.Destroy;
|
|
begin
|
|
inherited Destroy;
|
|
end;
|
|
|
|
procedure TCircle.Print;
|
|
begin
|
|
ShowMessage('Circle');
|
|
end;
|
|
|
|
{ TMyPoint }
|
|
|
|
constructor TMyPoint.Create;
|
|
begin
|
|
inherited Create;
|
|
end;
|
|
|
|
constructor TMyPoint.Create(X0: Integer; Y0: Integer);
|
|
begin
|
|
Create;
|
|
FX := X0;
|
|
FY := Y0;
|
|
end;
|
|
|
|
constructor TMyPoint.Create(MyPoint: TMyPoint);
|
|
begin
|
|
Create;
|
|
if not(MyPoint = Self) then
|
|
begin
|
|
FX := MyPoint.X;
|
|
FY := MyPoint.Y;
|
|
end;
|
|
end;
|
|
|
|
destructor TMyPoint.Destroy;
|
|
begin
|
|
inherited Destroy;
|
|
end;
|
|
|
|
procedure TMyPoint.Print;
|
|
begin
|
|
ShowMessage('MyPoint');
|
|
end;
|