Difference between revisions of "Records"

From Lazarus wiki
Line 4: Line 4:
  
 
To declare a record, you'd use:
 
To declare a record, you'd use:
<font color="#006699"><strong>TYPE</strong></font>
+
<delphi>
  TypeName <font color="#000000"><strong>=</strong></font> <font color="#006699"><strong>record</strong></font>
+
TYPE
      identifierlist1 <font color="#000000"><strong>:</strong></font> datatype1<font color="#000000"><strong>;</strong></font>
+
  TypeName = record
      <font color="#000000"><strong>.</strong></font><font color="#000000"><strong>.</strong></font><font color="#000000"><strong>.</strong></font>
+
    identifierlist1 : datatype1;
      identifierlistn <font color="#000000"><strong>:</strong></font> datatypen<font color="#000000"><strong>;</strong></font>
+
    ...
  <font color="#006699"><strong>end</strong></font><font color="#000000"><strong>;</strong></font>
+
    identifierlistn : datatypen;
 +
  end;
 +
</delphi>
  
 
For example:
 
For example:
<font color="#006699"><strong>type</strong></font>
+
<delphi>
  InfoType <font color="#000000"><strong>=</strong></font> <font color="#006699"><strong>record</strong></font>
+
type
      <font color="#009966"><strong>Name</strong></font> <font color="#000000"><strong>:</strong></font> <font color="#006699"><strong>string</strong></font><font color="#000000"><strong>;</strong></font>
+
  InfoType = record
      Age <font color="#000000"><strong>:</strong></font> <font color="#0099ff"><strong>integer</strong></font><font color="#000000"><strong>;</strong></font>
+
    Name : string;
      City<font color="#000000"><strong>,</strong></font> State <font color="#000000"><strong>:</strong></font> <font color="#006699"><strong>String</strong></font><font color="#000000"><strong>;</strong></font>
+
    Age : integer;
      Zip <font color="#000000"><strong>:</strong></font> <font color="#0099ff"><strong>integer</strong></font><font color="#000000"><strong>;</strong></font>
+
    City, State : String;
  <font color="#006699"><strong>end</strong></font><font color="#000000"><strong>;</strong></font>
+
    Zip : integer;
 +
  end;
 +
</delphi>
  
 
Each of the identifiers <tt>Name, Age, City, State</tt>, and <tt>Zip</tt> are referred to as fields. You access a field within a variable by:
 
Each of the identifiers <tt>Name, Age, City, State</tt>, and <tt>Zip</tt> are referred to as fields. You access a field within a variable by:
 +
<delphi>
 
  VariableIdentifier.FieldIdentifier
 
  VariableIdentifier.FieldIdentifier
 +
</delphi>
  
 
A period separates the variable and the field name.
 
A period separates the variable and the field name.
  
 
There's a very useful statement for dealing with records. If you are going to be using one record variable for a long time and don't feel like typing the variable name over and over, you can strip off the variable name and use only field identifiers. You do this by:
 
There's a very useful statement for dealing with records. If you are going to be using one record variable for a long time and don't feel like typing the variable name over and over, you can strip off the variable name and use only field identifiers. You do this by:
<font color="#006699"><strong>WITH</strong></font> RecordVariable <font color="#006699"><strong>DO</strong></font>
+
<delphi>
<font color="#006699"><strong>BEGIN</strong></font>
+
WITH RecordVariable DO
  <font color="#000000"><strong>.</strong></font><font color="#000000"><strong>.</strong></font><font color="#000000"><strong>.</strong></font>
+
BEGIN
<font color="#006699"><strong>END</strong></font><font color="#000000"><strong>;</strong></font>
+
  ...
 +
END;
 +
</delphi>
  
 
Example:
 
Example:
<font color="#006699"><strong>with</strong></font> Info <font color="#006699"><strong>do</strong></font>
+
<delphi>
<font color="#006699"><strong>begin</strong></font>
+
with Info do
  Age <font color="#000000"><strong>:=</strong></font> <font color="#ff0000">18</font><font color="#000000"><strong>;</strong></font>
+
begin
  ZIP <font color="#000000"><strong>:=</strong></font> <font color="#ff0000">90210</font><font color="#000000"><strong>;</strong></font>
+
  Age := 18;
<font color="#006699"><strong>end</strong></font><font color="#000000"><strong>;</strong></font>  
+
  ZIP := 90210;
 +
end;
 +
</delphi>
  
 
{|style=color-backgroud="white" cellspacing="20"
 
{|style=color-backgroud="white" cellspacing="20"

Revision as of 17:07, 6 January 2010

5E - Records (author: Tao Yue, state: unchanged)

A record allows you to keep related data items in one structure. If you want information about a person, you may want to know name, age, city, state, and zip.

To declare a record, you'd use: <delphi> TYPE

 TypeName = record
   identifierlist1 : datatype1;
   ...
   identifierlistn : datatypen;
 end;

</delphi>

For example: <delphi> type

 InfoType = record
   Name : string;
   Age : integer;
   City, State : String;
   Zip : integer;
 end;

</delphi>

Each of the identifiers Name, Age, City, State, and Zip are referred to as fields. You access a field within a variable by: <delphi>

VariableIdentifier.FieldIdentifier

</delphi>

A period separates the variable and the field name.

There's a very useful statement for dealing with records. If you are going to be using one record variable for a long time and don't feel like typing the variable name over and over, you can strip off the variable name and use only field identifiers. You do this by: <delphi> WITH RecordVariable DO BEGIN

 ...

END; </delphi>

Example: <delphi> with Info do begin

 Age := 18;
 ZIP := 90210;

end; </delphi>

previous contents next