Модель решения задачи в Turbo Delphi

В основе разработки приложения в среде Turbo Delphi (далее для краткости – TD) лежит объектно-ориентированная методология [2, 3, 4]. Кратко напомним ее главные постулаты. Предметную область решаемой задачи представляют совокупностью объектов, взаимодействующих друг с другом с помощью передаваемых сообщений. Каждый объект – экземпляр определенного типа (клас­са). Объект инкапсулирует (объединяет) в себе поля данных и методы их обработки. Вид и поведение объекта определяют его свойства. Под свойством понимают совокупность данных и методов их чтения и записи. Свойства можно задавать на этапе проектирования программы и изменять в процессе ее выполнения. Классы могут наследовать характеристики других классов. Таким образом возникает связь потомка с его предком, позволяющая не дублировать поля данных, методы действий с ними и свойства, что существенно упрощает процесс разработки программы. Наконец, третье базовое понятие объектно-ориентиро-ванного программирования – полиморфизм (многообразие). Оно предполагает модификацию методов потомка в соответствии с его новыми возможностями поведения при сохранении имен этих методов, доставшихся по наследству от предка. У каждого класса обязательно присутствуют два метода: "создать объект" и "уничтожить объект". Во время создания объекта происходит выделение памяти для хранения необходимых свойств и заполняются их значения по умолчанию. Во время уничтожения объекта происходит освобождение выделенной памяти. Метод, создающий объект, называется конструктором (constructor). Метод для уничтожения объекта называется деструктором (destructor). Сам процесс создания объекта называется инициализацией.

Разработчики среды и языка Delphi создали определенную иерархию классов. Классы продуманы очень хорошо. Если посмотреть на структуру всех доступных в среде TD компонентов, то получится громадное дерево. Компоненты образуют библиотеку – VCL (Visual Component Library). С каждым компонентом связан определенный программный код. Размещая на форме будущего приложения тот или иной компонент, мы автоматически добавляем фрагмент кода в соответствующий модуль приложения. Форма тоже является компонентом, на котором располагают визуальные элементы библиотеки для организации требуемого интерфейса пользователя. С каждой формой (их у приложения может быть несколько) связан ее программный код, оформленный в виде модуля. Таким образом, среда TD – это среда визуального программирования, в которой разработчик получает возможность увидеть окно будущей программы уже на этапе конструирования его формы. Базовым классом всех объектов в Delphi является класс TObject (в Delphi при именовании классов в начало имени добавляется буква "Т"). Он инкапсулирует основные свойства, характерные для всех объектов Delphi. Все классы в Delphi являются прямыми или косвенными наследниками TObject.

Основанием к взаимодействию объектов приложения служит событие. Событие можно рассматривать как воздействие на объект. Событие может наступать в результате действий пользователя (перемещение указателя мыши, нажатие на клавишу) и работы самих объектов. Для каждого объекта определено множество событий, на которые он может реагировать. В конкретных экземплярах объекта могут быть определены обработчики тех или иных событий. Именно обработчики и придают требуемую функциональность создаваемому приложению. В результате проектирования в среде TD мы получаем приложение, управляемое событиями. В качестве обработчиков выступают методы (подпрограммы), заголовки которых создаются автоматически при выполнении разработчиком определенных действий (о них будет сказано далее). Программисту требуется написать код метода, определяющий способ обработки соответствующего события. При этом разработчик дополняет предлагаемую ему средой заготовку подпрограммы константами и переменными, не вошедшими в описание типа (класса), но необходимыми для реализации обработчика.