The storage size of the default integer types are given in Reference Guide. In the case of user defined-types, the storage space occupied depends on the bounds of the type:
If both bounds are within range -128..127, the variable is stored as a shortint (signed 8-bit quantity).
If both bounds are within the range 0..255, the variable is stored as a byte (unsigned 8-bit quantity).
If both bounds are within the range -32768..32767, the variable is stored as a smallint (signed 16-bit quantity).
If both bounds are within the range 0..65535, the variable is stored as a word (unsigned 16-bit quantity)
If both bounds are within the range 0..4294967295, the variable is stored as a longword (unsigned 32-bit quantity).
Otherwise the variable is stored as a longint (signed 32-bit quantity).