Record

From Lazarus wiki
Revision as of 15:54, 24 March 2012 by Vincent (talk | contribs) (Text replace - "delphi>" to "syntaxhighlight>")
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Deutsch (de) English (en) español (es) suomi (fi) français (fr) magyar (hu) polski (pl) português (pt) русский (ru)

A highly structured data type in Pascal .

While simple data structures such as arrays or sets consist of elements all of the same type, a record can consist of a number of elements of different types, and can take on a huge complexity. Each separate part of a record is referred to as a Field.

Some examples of records:

 Type
   ExampleRecord = Record
                     Values: array [1..200] of real;
                     NumValues: Integer; { holds the actual number of points in the array }
                     Average: Real { holds the average or mean of the values in the array }
                   End;

   Member = Record
              Firstname, Surname : string;
              Address: array [1..3] of string;
              Phone : Integer;
              Birthdate: TDateTime;
              PaidCurrentSubscription: Boolean
            End;

A record is treated by the program as a single entity, and for example a whole record can be copied (provided the copy is of the same type) thus:

 Var a, b : Member;
 Begin
   { assign values to the fields in Record a }
   ...
   ...
   b := a
 End;

Individual fields are accessed by placing a dot between the record name and the field name thus:

  a.firstname := 'George';
  a.surname := 'Petersen';
  a.phone := 789534;
  a.PaidCurrentSubscription := TRUE;

Alternatively, the whole series of fields can be made available together using the WITH construct:

 with a 
   do
   begin
     firstname := 'George';
     surname := 'Petersen';
     phone := 789534;
     PaidCurrentSubscription := TRUE
   end;

Records are widely used in Pascal, to group data items together logically.