С версии Delphi 4 впервые введены так называемые динамические массивы. При объявлении таких массивов в программе не следует указывать границы индексов:
var
A: array of Integer;
В: array of array of Char;
C: array of array of array of Real;
В этом примере динамический массив А имеет одно измерение, массив В - два и массив С - три измерения. Распределение памяти и указание границ индексов по каждому измерению динамических массивов осуществляется в ходе выполнения программы путем инициации массива с помощью функции SetLength. В ходе выполнения такого оператора:
SetLength(А,3);
одномерный динамический массив A будет инициирован, т. е. получит память, достаточную для размещения трех целочисленных значений. Нижняя граница индексов по любому измерению динамического массива всегда равна 0, поэтому верхней границей индексов для A станет 2.
Объявление одномерного массива:
ИмяМассива: array [НижнийИндекс...ВерхнийИндекс] of ТипЭлементов;
Объявление двумерного массива:
ИмяМассива: array [НижнийИндекс1..ВерхнийИндекс1,
НижнийИндекс2..ВерхнийИкдекс2] of ТипЭлементов;
Записи
Запись - это структура данных, состоящая из фиксированного количества компонентов, называемых полями записи. В отличие от массива компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.
Структура объявления типа записи такова:
<имя типа> = record
<сп.полей>
end;
Вариант 1. Объявление записи в разделе переменных:
Запись: record
Поле1:Тип1;
Поле2: Тип2;
ПолеJ: TиnJ;
end;
Вариант 2. Сначала объявляется тип-запись, затем - переменная-запись:
type ТипЗапись = record
Поле1: Тип1;
Поле 2:Тип2;
ПолеК: ТипК;
end;
var Запись: ТипЗапись;