There are 2 ways to declare a normal field. The first one is the classical way, similar to a definition in an object:
will be the following
The example demonstrates that values of fields are initialized with zero (or the equivalent of zero for non ordinal types: empty string, empty array and so on).
The second way to declare a field (only available in more recent versions of Free Pascal) is using a var block:
This definition is completely equivalent to the previous definition.
Remark: As of version 3.0 of the compiler, the compiler can re-order the fields in memory if this leads to better alignment and smaller instances. That means that in an instance, the fields do not necessarily appear in the same order as in the declaration. RTTI generated for a class will reflect this change.