September Morn Update
This commit is contained in:
parent
4e2d22a71d
commit
aac6731f2c
6856 changed files with 141342 additions and 21127 deletions
41
Task/Classes/Component-Pascal/classes-1.component
Normal file
41
Task/Classes/Component-Pascal/classes-1.component
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
MODULE Point;
|
||||
IMPORT
|
||||
Strings;
|
||||
TYPE
|
||||
Instance* = POINTER TO LIMITED RECORD
|
||||
x-, y- : LONGINT; (* Instance variables *)
|
||||
END;
|
||||
|
||||
PROCEDURE (self: Instance) Initialize*(x,y: LONGINT), NEW;
|
||||
BEGIN
|
||||
self.x := x;
|
||||
self.y := y
|
||||
END Initialize;
|
||||
|
||||
(* constructor *)
|
||||
PROCEDURE New*(x, y: LONGINT): Instance;
|
||||
VAR
|
||||
point: Instance;
|
||||
BEGIN
|
||||
NEW(point);
|
||||
point.Initialize(x,y);
|
||||
RETURN point
|
||||
END New;
|
||||
|
||||
(* methods *)
|
||||
PROCEDURE (self: Instance) Add*(other: Instance): Instance, NEW;
|
||||
BEGIN
|
||||
RETURN New(self.x + other.x,self.y + other.y);
|
||||
END Add;
|
||||
|
||||
PROCEDURE (self: Instance) ToString*(): POINTER TO ARRAY OF CHAR, NEW;
|
||||
VAR
|
||||
xStr,yStr: ARRAY 64 OF CHAR;
|
||||
str: POINTER TO ARRAY OF CHAR;
|
||||
BEGIN
|
||||
Strings.IntToString(self.x,xStr);
|
||||
Strings.IntToString(self.y,yStr);
|
||||
NEW(str,128);str^ := "@(" +xStr$ + "," + yStr$ + ")";
|
||||
RETURN str
|
||||
END ToString;
|
||||
END Point.
|
||||
Loading…
Add table
Add a link
Reference in a new issue