Name

Record Keyword

Syntax

type Name = record Members... end;
type Name = packed record Members... end;
type Name = record Members... 
              case Selector of Case, ...: (Members...;);
              ...
            end;
type Name = packed record Members... 
              case Name: Selector of Case, ...: (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.