Name
Record Keyword
Syntax
typeName
= recordMembers
... end; typeName
= packed recordMembers
... end; typeName
= recordMembers
... caseSelector
ofCase
,...
: (Members
...;); ... end; typeName
= packed recordMembers
... caseName
:Selector
ofCase
,...
: (Members
...;); ... end;
Description
A record
in Delphi is the same as a record in
standard Pascal. A record is a structured type that contains zero or
more members. Each member is like a variable,
consisting of a name and a type. A record-type variable has space for
all of the record’s members, and you can refer to individual
members of a record.
By default, record members are aligned so they start on natural
boundaries. A packed record eliminates the padding between members,
which can result in a smaller record size, but at the expense of
increased access time. See the packed
keyword for
details.
Variant Records
A record can be a variant record (equivalent to a
union
in C or C++), where members can share the
same space within the record. The variant part of a record must
follow all the non-variant members. The
Selector
can be just a type name or it can
declare an additional member. The selector member tells you which
variant case to use. Without a selector member, you must use another
technique to know which variant case is
correct.
Each case specifies one or more constants whose type is the selector type. After the colon, the case lists zero or more member declarations inside parentheses.
You cannot have long string, dynamic array, ...
Get Delphi in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.