- •Глава 1
- •Структура модуля
- •Интерфейс
- •Реализация
- •Инициализация и завершение
- •Ключевые слова
- •Ключевое слово const
- •Ключевое слово type
- •Комментарии
- •Переменные
- •Типы данных и переменные
- •Преобразование типов
- •Знаки операций
- •Константы
- •Массивы
- •Одномерные массивы
- •Многомерные массивы
- •Функции Low и High
- •Динамические массивы
- •Короткая строка
- •Длинная строка
- •Операции со строками
- •Разбиение литерала по строкам программы
- •Строковые функции
- •Множества
- •Совместимость типов данных
- •Примечание.
- •Указатели
- •Статические и динамические переменные
- •Размещение динамических переменных
- •Разыменование указателя
- •Глава 2.
- •Вложенные условия. Операторы if могут быть вложены друг в друга произвольное число раз:
- •Элементы структуры цикла
- •Цикл for…
- •Цикл for с увеличением счетчика синтаксически определен как
- •Цикл for с уменьшением счетчика в общем случае имеет следующий вид
- •Функции Pred и Succ
- •Цикл while
- •Синтаксис цикла while имеет вид
- •Цикл repeat
- •Управление циклами
- •Оператор goto
- •Оператор case
- •Область видимости идентификаторов
- •Пример записи
- •Оператор with
- •Массивы записей
- •Подпрограммы
- •Процедуры и функции
- •Объявление и определение подпрограммы
- •Параметры подпрограмм
- •Локальные процедуры и функции
- •Перегрузка подпрограмм
- •Параметры по умолчанию
- •Глава 3
- •Анатомия класса
- •Наследование
- •Ключевые слова is и as
- •Что такое класс?
- •Анатомия класса
- •Указатель Self
- •Пример класса
- •Анализ объявления и реализации
- •Наследование
- •Перекрытие методов
- •Ключевые слова is и as
Пример записи
Например, зададимся целью создать описание коллекции музыкальных CD. Было бы удобно иметь такую переменную, которая позволила бы хранить всю необходимую нам информацию об одном CD в одном месте. Именно такую возможность и дают нам записи. Сначала мы должны объявить структуру записи, а затем использовать ее экземпляры– переменные.
Для объявления записи применяется ключевое слово record:
type
TCDRecord = record
Number : integer; // Порядковый номер CD в коллекции
Title : string; // Наименование
Artist : string; // Исполнитель
Year : integer; // Год выпуска
Recorded: string; // Фирма-производитель
Price : double; // Стоимость
Market : string; // Где куплен
end;
Каждый элемент записи называется полем. В данном случае запись объединяет данные трех различных типов – целого, строкового и вещественного.
ПРИМЕЧАНИЕ. К объявлению записи в этом примере следует относиться только как к примеру. Так, запись с полями типа «длинная строка» не подходит для записи в файл. Если предполагается хранить записи в файлах, все записи должны иметь одинаковый размер ( в байтах). В данном же случае никто не может гарантировать то, что все записи сведений о коллекции CD будут иметь одну и ту же длину. При создании записей, которые предполагается записывать в файлы, поля строкового типа следует объявлять либо как короткие строки, либо как массивы символов (array of Char). Более подробно об этом говорится в разделе «Обработка двоичных данных».
После того как тип записи объявлен, можно работать с переменными – экземплярами:
var
CD : TCDRecord;
Теперь можно присваивать значения полям переменной CD:
CD.Number :=1;
CD.Title :=’Aftermath’;
CD.Artist :=’The Rolling Stones’;
CD.Year := 1986;
CD.Recorded:=’ABCKO Music and Records,Inc’;
CD.Price := 80;
CD.Market := ’Горбушка’;
Здесь мы видим что поле, относящееся к переменной–записи, обозначается идентификатором, состоящим из имени переменной, точки и имени поля.
Ниже дан пример присваивания значения поля записи свойству надписи, размещенной на некоторой форме:
Label1.Caption := CD.Recorded;
Синтаксис оператора record имеет вид
name = record
field_1 : data_type;
field_2 : data_type;
.
.
.
field_n : data_type;
end;
Оператор with
Оператор with применяется как к записям, так и к объектам. Здесь мы рассмотрим то как он используется вместе с записями. Выше мы написали код, заполняющий структуру записи данными:
CD.Number :=1;
CD.Title :=’Aftermath’;
CD.Artist :=’The Rolling Stones’;
CD.Year := 1986;
CD.Recorded:=’ABCKO Music and Records,Inc’;
CD.Price := 80;
CD.Market := ’Горбушка’;
С помощью оператора with этот код можно несколько упростить:
with CD do
begin
Number :=1;
Title :=’Aftermath’;
Artist :=’The Rolling Stones’;
Year := 1986;
Recorded:=’ABCKO Music and Records,Inc’;
Price := 80;
Market := ’Горбушка’;
end;
Оператор with присоединяет квалификатор (имя записи) по умолчанию к блоку кода. Все, что находится внутри begin – end рассматривается как собственность записи CD.
