PROC_createObject(obj1{})
PROC_createObject(obj2{})
obj1.Value=10
obj2.Value=2
CASE FN_compareObject(obj1{},obj2{}) OF
WHEN -1:PRINT "obj1 is less than obj2"
WHEN 0:PRINT "obj1 is equal to obj2"
WHEN 1:PRINT "obj1 is greater than obj2"
ENDCASE
PROC_destroyObject(obj1{})
PROC_destroyObject(obj2{})
END
REM Create a new instance of the object
DEF PROC_createObject(RETURN obj{})
DIM obj{Value}
ENDPROC
REM Compare objects: 0 (=), -1 (<), 1 (>)
DEF FN_compareObject(obj1{}, obj2{})
IF obj1.Value = obj2.Value THEN =0
IF obj1.Value > obj2.Value THEN = 1
=-1
REM Are both instances of the same object (not tested)
DEF FN_equalsObject(obj1{}, obj2{})
=obj1{}=obj2{}
REM Destroy the object
DEF PROC_destroyObject(RETURN obj{})
obj.Value=0
PROC_createObject(obj1{})
PROC_createObject(obj2{})
obj1.Value=9
obj2.Value=10
CASE FN(obj1.Compare)(obj1{},obj2{}) OF
WHEN -1:PRINT "obj1 is less than obj2"
WHEN 0:PRINT "obj1 is equal to obj2"
WHEN 1:PRINT "obj1 is greater than obj2"
ENDCASE
PROC(obj1.Destroy)(obj1{})
PROC(obj2.Destroy)(obj2{})
END
REM Create a new instance of the object
DEF PROC_createObject(RETURN obj{})
DIM obj{Create,Equals,Compare,Destroy,Value}
obj.Create = ^PROC_createObject()
obj.Compare = ^FN_compareObject()
obj.Equals = ^FN_equalsObject()
obj.Destroy = ^PROC_destroyObject()
ENDPROC
REM Compare objects: 0 (=), -1 (<), 1 (>)
DEF FN_compareObject(obj1{}, obj2{})
IF obj1.Value = obj2.Value THEN =0
IF obj1.Value > obj2.Value THEN = 1
=-1
REM Are both instances of the same object (not tested)
DEF FN_equalsObject(obj1{}, obj2{})
=obj1{}=obj2{}
REM Destroy the object
DEF PROC_destroyObject(RETURN obj{})
obj.Value=0
ENDPROC