88 lines
1.6 KiB
Plaintext
88 lines
1.6 KiB
Plaintext
|
||
{ Turbo Points }
|
||
{ Copyright (c) 1989 by Borland Interational, Inc. }
|
||
|
||
unit Points;
|
||
{ From P-20 of the Object-Oriented Programming Guide.
|
||
}
|
||
|
||
interface
|
||
|
||
uses Graph;
|
||
|
||
type
|
||
Location = object
|
||
X,Y : Integer;
|
||
procedure Init(InitX, InitY : Integer);
|
||
function GetX : Integer;
|
||
function GetY : Integer;
|
||
end;
|
||
|
||
Point = object (Location)
|
||
Visible : Boolean;
|
||
procedure Init(InitX, InitY : Integer);
|
||
procedure Show;
|
||
procedure Hide;
|
||
function IsVisible : Boolean;
|
||
procedure MoveTo(NewX, NewY : Integer);
|
||
end;
|
||
|
||
implementation
|
||
|
||
{--------------------------------------------------------}
|
||
{ Location's method implementations: }
|
||
{--------------------------------------------------------}
|
||
|
||
procedure Location.Init(InitX, InitY : Integer);
|
||
begin
|
||
X := InitX;
|
||
Y := InitY;
|
||
end;
|
||
|
||
function Location.GetX : Integer;
|
||
begin
|
||
GetX := X;
|
||
end;
|
||
|
||
function Location.GetY : Integer;
|
||
begin
|
||
GetY := Y;
|
||
end;
|
||
|
||
|
||
{--------------------------------------------------------}
|
||
{ Points's method implementations: }
|
||
{--------------------------------------------------------}
|
||
|
||
procedure Point.Init(InitX, InitY : Integer);
|
||
begin
|
||
Location.Init(InitX, InitY);
|
||
Visible := False;
|
||
end;
|
||
|
||
procedure Point.Show;
|
||
begin
|
||
Visible := True;
|
||
PutPixel(X, Y, GetColor);
|
||
end;
|
||
|
||
procedure Point.Hide;
|
||
begin
|
||
Visible := False;
|
||
PutPixel(X, Y, GetBkColor);
|
||
end;
|
||
|
||
function Point.IsVisible : Boolean;
|
||
begin
|
||
IsVisible := Visible;
|
||
end;
|
||
|
||
procedure Point.MoveTo(NewX, NewY : Integer);
|
||
begin
|
||
Hide;
|
||
Location.Init(NewX, NewY);
|
||
Show;
|
||
end;
|
||
|
||
end.
|
||
|