Alternate syntax for VAR: instance variable for the objects.
DATA <DataName1> [,<DataNameN>] [ AS <type> ] [ INIT <uValue> ] [[EXPORTED | VISIBLE] | [PROTECTED] | [HIDDEN]] [READONLY | RO]
<DataName1> Name of the DATA
<type> Optional data type specification from the following: Character, Numeric, Date, Logical, Codeblock, Nil.
<uValue> Optional initial value when creating a new object.
EXPORTED Specifies that this DATA is accessible to functions and methods outside of the class. VISIBLE is a synonym for EXPORTED.
PROTECTED Specifies that this DATA is only accessible to functions and methods within this class and its subclasses.
HIDDEN Specifies that this DATA is only accessible to the class where it was defined, and is not inherited by the subclasses.
READONLY Restricts assignment to the variable. If specified with the EXPORTED clause, assignment is only permitted from the current class and its subclasses. If specified with the PROTECTED clause, assignment is only permitted from the current class. RO is a synonym for READONLY.
DATA elements can also be thought of as the “properties” of an object. They can be of any data type, including codeblock. Once an object has been created, the DATA elements are referenced with the colon (:) as in MyObject:Heading := “Last name”. Usually a class also defines methods to manipulate the DATA.
You can use the “AS <type>” clause to enforce that the DATA is maintained as a certain type. Otherwise it will take on the type of whatever value is first assigned to it.
Use the “INIT <uValue>” clause to initialize that DATA to <uValue> whenever a new object is created.
VAR can be a synonym for DATA, or it can use a slightly different syntax for compatibility with other dialects.
CREATE CLASS TBColumn DATA Block // Code block to retrieve data for the column DATA Cargo // User-definable variable DATA ColorBlock // Code block that determines color of data items DATA ColSep // Column separator character DATA DefColor // Array of numeric indexes into the color table DATA Footing // Column footing DATA FootSep // Footing separator character DATA Heading // Column heading DATA HeadSep // Heading separator character DATA Width // Column display width DATA ColPos // Temporary column position on screen METHOD New() // Constructor ENDCLASS
Object Oriented Programming, CLASS, METHOD, CLASSDATA, VAR