- •Глава 1
- •Структура модуля
- •Интерфейс
- •Реализация
- •Инициализация и завершение
- •Ключевые слова
- •Ключевое слово const
- •Ключевое слово type
- •Комментарии
- •Переменные
- •Типы данных и переменные
- •Преобразование типов
- •Знаки операций
- •Константы
- •Массивы
- •Одномерные массивы
- •Многомерные массивы
- •Функции Low и High
- •Динамические массивы
- •Короткая строка
- •Длинная строка
- •Операции со строками
- •Разбиение литерала по строкам программы
- •Строковые функции
- •Множества
- •Совместимость типов данных
- •Примечание.
- •Указатели
- •Статические и динамические переменные
- •Размещение динамических переменных
- •Разыменование указателя
- •Глава 2.
- •Вложенные условия. Операторы if могут быть вложены друг в друга произвольное число раз:
- •Элементы структуры цикла
- •Цикл for…
- •Цикл for с увеличением счетчика синтаксически определен как
- •Цикл for с уменьшением счетчика в общем случае имеет следующий вид
- •Функции Pred и Succ
- •Цикл while
- •Синтаксис цикла while имеет вид
- •Цикл repeat
- •Управление циклами
- •Оператор goto
- •Оператор case
- •Область видимости идентификаторов
- •Пример записи
- •Оператор with
- •Массивы записей
- •Подпрограммы
- •Процедуры и функции
- •Объявление и определение подпрограммы
- •Параметры подпрограмм
- •Локальные процедуры и функции
- •Перегрузка подпрограмм
- •Параметры по умолчанию
- •Глава 3
- •Анатомия класса
- •Наследование
- •Ключевые слова is и as
- •Что такое класс?
- •Анатомия класса
- •Указатель Self
- •Пример класса
- •Анализ объявления и реализации
- •Наследование
- •Перекрытие методов
- •Ключевые слова is и as
Массивы записей
В любой программе можно объявить массив записей аналогично объявлению массива данных целого или вещественного типов:
var
MyCDs : array [0..9] of TCDRecord;
begin
MyCDs[0].Number :=1;
MyCDs[0].Title :=’Aftermath’;
MyCDs[0].Artist :=’The Rolling Stones’;
MyCDs[0].Year := 1986;
MyCDs[0].Recorded:=’ABCKO Music and Records,Inc’;
MyCDs[0].Price := 80;
MyCDs[0].Market := ’Горбушка’;
MyCDs[1].Number := 2;
MyCDs[1].Title := ’Between the buttons’;
MyCDs[1].Artist := ’The Rolling Stones’;
MyCDs[2].Number := 3;
MyCDs[2].Title := ’Willage Green Preservation Society’;
MyCDs[2].Artist := ’The Kinks’;
Label1.Caption := MyCDs[2].Artist;
{ Продолжение . . . }
end;
Это выглядит чуть сложнее, чем в случае массива целого или вещественного типа. Так, индекс следует за именем массива MyCDs, а затем – точка и имя поля.
Включаемый файл
Включаемый файл – это обычный текстовый файл, содержимое которого необходимо «подставить» в нужное место модуля. Обычно в таких файлах размещают объявления констант, директивы компилятора или фрагменты кода, которые используются и в других модулях проекта. Иногда бывает удобно вынести в отдельный файл часть уже отлаженного кода чтобы уменьшить объем текста, видимого в редакторе. Внешний файл автоматически включается в текст модуля при компиляции с помощью специальной директивы. Для имени включаемого файла рекомендуется расширение .INC.
Допустим, что включаемый файл должен содержать код, показанный на листинге 2.2
Листинг2.2. Файл TEST.INC.
const
DefWidth = 500;
DefHeight = 300;
type
TCDRecord = record
Number : integer; // Порядковый номер CD в коллекции
Title : string; // Наименование
Artist : string; // Исполнитель
Year : integer; // Год выпуска
Recorded: string; // Фирма-производитель
Price : double; // Стоимость
Market : string; // Где куплен
end;
Чтобы создать включаемый файл, в главном меню Delphi надо выбрать File | New и затем дважды щелкнуть на пиктограмме Text диалога New Items. В результате откроется чистая страница редактора кода. Введите текст и сохраните файл под любым именем, выбрав в меню File | Save As. . .. Не забудьте при этом задать расширение имени INC, – иначе по умолчанию будет принято расширение TXT.
Чтобы включить внешний файл в текст модуля, необходимо воспользоваться директивой компилятора $I так как это показано в следующем примере:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes,StdCtrls;
{$I Test.inc}
{ ... остальной текст модуля }
Директива $I дает указание компилятору взять исходный текст из файла TEST.INC и заменить им саму директиву. Можно считать, что действие директивы $I подобно копированию фрагмента текста из одного файла в буфер обмена и вставке содержимого буфера в результирующий файл.
Необходимо следить чтобы включаемый файл был синтаксически корректным. В противном случае компилятор зафиксирует ошибку.
Подпрограммы
Подпрограммы в Object Pascal – это автономные исполняемые секции программы. Подпрограммы лежат в основе методики процедурного структурирования программ, предлагающей способ уменьшения программного кода за счет вынесения части функциональных возможностей программы в программную единицу специального вида – процедуру или функцию.
Новый термин. Подпрограмма – это блок кода с именем, состоящий из заголовка, объявлений и набора исполняемых операторов. Object Pascal представляет два существенно различных вида подпрограмм –процедуры и функции.
