17.2 Types

The follwing auxiliary types are defined:

 TYPE
    { Character set }
    TCharSet = SET Of Char;
    PCharSet = ^TCharSet;
 
    { Byte array }
    TByteArray = ARRAY [0..MaxBytes-1] Of Byte;
    PByteArray = ^TByteArray;
 
    { Word array }
    TWordArray = ARRAY [0..MaxWords-1] Of Word;
    PWordArray = ^TWordArray;
 
    { Pointer array }
    TPointerArray = Array [0..MaxPtrs-1] Of Pointer;
    PPointerArray = ^TPointerArray;
 
    { String pointer }
    PString = ^String;
 
    { Filename array }
    AsciiZ = Array [0..255] Of Char;
 
    Sw_Word    = Cardinal;
    Sw_Integer = LongInt;
The following records are used internaly for easy type conversion:
 TYPE
    { Word to bytes}
    WordRec = packed RECORD
      Lo, Hi: Byte;
    END;
 
    { LongInt to words }
    LongRec = packed RECORD
      Lo, Hi: Word;
    END;
 
   { Pointer to words }
    PtrRec = packed RECORD
      Ofs, Seg: Word;
    END;

The following record is used when streaming objects:

 TYPE
    PStreamRec = ^TStreamRec;
    TStreamRec = Packed RECORD
       ObjType: Sw_Word;
       VmtLink: pointer;
       Load : Pointer;
       Store: Pointer;
       Next : PStreamRec;
    END;

The TPoint basic object is used in the TRect object (see section 17.4, page 554):

 TYPE
    PPoint = ^TPoint;
    TPoint = OBJECT
       X, Y: Sw_Integer;
    END;