Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

vse-bilearivkty_001

.pdf
Скачиваний:
17
Добавлен:
08.06.2015
Размер:
2.63 Mб
Скачать

Полиморфизм

Полиморфизм – это возможность определения единого по имени действия (метода в виде процедуры или функции), применимого ко всем объектам иерархии наследования, т.е. возможность иметь несколько методов с одним и тем же именем для различных объектов одной иерархии. Это средство для развития объектов в потомках. Оно реализуется тем, что объект-потомок может добавлять и переопределять методы, т.е. заменять методы предка на новые с теми же именами.

Создание классов. Объекты

Классом в Object Pascal называется структура языка, которая может иметь в своем составе переменные, функции и процедуры. Переменные в зависимости от предназначения именуются полями или свойствами. Процедуры и функции класса – методами. Соответствующий классу тип называется объектным типом:

type

TMyObject = class(TObject)

MyField: Integer;

function MyMethod: Integer;

end;

В этом примере описан класс TMyObject, содержащий поле MyField и метод MyMethod.

Поля объекта – это данные, уникальные для каждого созданного в программе экземпляра класса. Описанный здесь класс TMyObject имеет одно поле – MyField.

Методы – это процедуры и функции, описанные внутри класса и предназначенные для операций над его полями. В состав класса входит указатель на специальную таблицу, где содержится вся информация, нужная для вызова методов. От обычных процедур и функций методы отличаются тем, что им при вызове передается указатель на тот объект, который их вызвал. Поэтому обрабатываться будут поля именно того объекта, который вызвал метод. Внутри метода указатель на вызвавший его объект доступен под зарезервированным именем self.

Свойство – поле, доступное для чтения и записи не напрямую, а через соответствующие методы.

Классы могут быть описаны либо в секции интерфейса модуля, либо на верхнем уровне вложенности секции реализации. Не допускается описание классов "где попало", т. е. внутри процедур и других блоков кода.

Чтобы использовать класс в программе, нужно, как минимум, объявить переменную этого типа. Переменная объектного типа называется экземпляром класса или объектом:

var AMyObject: TMyObject;

Существует четкая граница между понятиями класс и объект: класс – это описание, объект – то, что создано в соответствии с этим описанием.

Создание и уничтожение объектов

В Object Pascal экземпляры объектов могут быть только динамическими. Это означает, что в приведенном выше фрагменте переменная AMyObject на самом деле является указателем, содержащим адрес объекта.

Объект "появляется на свет" в результате вызова специального метода, который инициализирует объект – конструктора. Созданный экземпляр уничтожается другим методом – деструктором:

AMyObject := TMyObject.Create;

{ действия с созданным объектом }

...

AMyObject.Destroy;

Здесь объекта еще нет, но обратите внимание, что вызывается метод TMyObject.Create, а не AMyObject.Create. Есть такие методы (в том числе конструктор), которые успешно работают до (или даже без) создания объекта.

В Object Pascal конструкторов у класса может быть несколько. Общепринято называть конструктор create. Типичное название деструктора – Destroy.

type

TMyObject = class(TObject)

MyField: Integer;

Constructor Create;

Destructor Destroy;

Function MyMethod: Integer;

end;

Для уничтожения экземпляра объекта рекомендуется использовать метод Free, который первоначально проверяет указатель (не равен ли он Nil) и только затем вызывает Destroy:

AMyObject.Free ;

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

Введение в визуальное программирование

Delphi – это система объектно-ориентированного визуального программирования.

В основе Delphi лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий.

Delphi использует язык Object Pascal в среде визуальной разработки.

Приложения (прикладные программы) Delphi являются интерактивными системами, в которых для организации взаимодействия между пользователем и программой используются методы (подпрограммы), управляемые событиями.

Основой объектно-ориентированного программирования является объект. Объект можно определить как совокупность данных (компонентов) и методов работы с ними. Объектно-

ориентированная программа – это совокупность объектов и способов их взаимодействия. Обмен информацией между объектами производится с помощью сообщений. Сообщения являются результатом появления событий.

Событие – это отклик на внешнее воздействие. Суть программирования, управляемого событиями, состоит в отслеживании таких событий, которые требуют реакции приложения.

Объектно-ориентированное программирование (ООП, OOP – Object Oriented Programming) позволяет решать сложные задачи с помощью объектов, необходимых для программирования в Windows. При работе с Delphi можно и не использовать концепции ООП, но использование элементов визуальной разработки автоматически ведёт к применению ООП.

Объекты в Delphi – это элементы, из которых строится приложение: форма, рамка, кнопка, метка и др. Объектом является и включаемый визуальный компонент (например, кнопка) в том виде, как он представлен во время помещения его на форму и во время выполнения программы. Объекты изображаются на экране до выполнения самой программы. Поэтому программирование в Delphi – визуальное.

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

Не весь код программы, написанной для Delphi, находится в приложении Delphi. Небольшая его часть фактически является частью Windows. Например, коды для стандартных окон диалога и кнопок полностью получены от Windows. Delphi просто использует их, выполняя соответствующие вызовы из Windows DLL (Dynamic Linked Library).

Схематично взаимосвязь программ с Delphi и Windows представлена на рис.1.

Рисунок 1

Свойства – это атрибуты (основные характеристики), которые описывают особенности объекта; например, отображают такие характеристики, как цвет, высота, ширина и положение объекта. На внешний вид объекта можно воздействовать (изменять его) во время разработки и выполнения приложения, изменяя его свойства.

Практически все объекты реагируют на определённые события от мыши и клавиатуры.

Приложения Windows используют методы (подпрограммы) обработки событий для управления взаимодействием между программой и пользователем и для реакции на действия ОС. Программный код, который пишет программист в Delphi, будет обеспечивать реакцию на события. Подпрограмма, которая реагирует на событие, называется обработчиком события. Delphi работает с событиями путём вызова определённых процедур – обработчиков событий. Если процедура не связана с данным событием, то оно игнорируется и выполняется стандартная реакция системы или не производится никакого действия.

Пользовательский интерфейс среды Delphi

Для запуска среды Delphi выполните следующую команду:

Пуск → Все программы → Borland Delphi 7 → Delphi 7

После загрузки интерфейс Delphi 7 имеет вид, показанный на рис. 2, и имеет 5 основных окон:

1.главное окно (Delphi 7 - Project 1);

2.окно редактора свойств объектов (Object Inspector);

3.окно формы (Form 1);

4.окно редактора кода (Unit1.pas);

5.окно дерева объектов (Object TreeView).

Окно редактора кода почти полностью закрыто окном стартовой формы. Для переключения между окном формы и окном редактора кода нажмите клавишу F12.

Рисунок 2

Главное окно находится в верхней части экрана. В нём расположены:

строка заголовка;

строка меню;

панель инструментов;

панель палитры компонентов.

Вид главного окна представлен на рис. 3.

Рисунок 3

Object Inspector – окно редактора свойств объектов или инспектор объектов (рис. 4).

Любой размещаемый на форме компонент характеризуется некоторым набором параметров: положением, размером, цветом и т. д. Часть этих параметров, например, положение и размеры компонента, можно изменять, манипулируя с компонентом в окне формы. Для изменения других параметров предназначено окно редактора свойств объектов (или, что то же самое, Инспектора объектов). Это окно содержит две вкладки – Properties (Свойства) и Events (События). Вкладка properties служит для установки нужных свойств компонента, вкладка Events позволяет определить реакцию компонента на то или иное событие. Совокупность cвойств отображает видимую сторону компонента: положение относительно левого верхнего угла рабочей области формы, его размеры и цвет, шрифт и текст надписи на нем и т. п.; совокупность событий – его поведенческую сторону: будет ли компонент реагировать на щелчок мыши или на нажатие клавиш, как он будет вести себя в момент появления на экране или в момент изменения размеров окна и т. п.

Рисунок 4

Object TreeView – окно дерева объектов (рис. 5) предназначено для наглядного отображения связей между отдельными компонентами, размещенными на активной форме или в активном модуле данных. Щелчок по любому компоненту в этом окне активизирует соответствующий компонент в окне формы и отображает свойства этого компонента в окне Инспектора объектов.

Рисунок 5

Окно кода программы представлено на рис. 6.

Окно редактора кода, можно увидеть, отодвинув в сторону окно формы либо, как уже говорилось выше, нажать клавишу F12. В него следует набирать текст программы. В начале работы над новым проектом это окно редактора кода содержит сформированный Delphi шаблон программы.

Рисунок 6

Окно формы представляет собой проект Windows-окна будущей программы. Вначале это окно содержит стандартные для Windows интерфейсные элементы - кнопки вызова системного меню, максимизации, минимизации и закрытия окна, строку заголовка и очерчивающую рамку. Вся рабочая область окна заполнена точками координатной сетки, служащей для упорядочения размещаемых на форме компонентов.

Свойства формы определяют ее внешний вид: размер, положение на экране, текст заголовка, вид рамки.

В ходе работы над новым проектом, так в Delphi называется разрабатываемое приложение, программист изменяет значения свойств формы Form1 и добавляет к форме необходимые компоненты (поля ввода и вывода текста, командные кнопки), при этом он в любой момент времени контролирует содержание окна создаваемой программы и может внести в него необходимые изменения.

Компоненты и палитра компонентов

Палитра компонентов – это каталог, состоящий из визуальных и невизуальных компонентов. Компонент – это структурная единица Delphi. Основу ООП в Delphi

составляет набор компонентов, который позволяет Delphi с помощью компонентов использовать множество возможностей, присущих Windows.

Окно формы – это окно Windows. Всё рабочее пространство окна – это рабочая область, размеченная сеткой для удобства расположения на ней компонентов из Палитры компонентов. Сама форма также является компонентом. Новая форма, которая создаётся при загрузке Delphi или при создании нового проекта, является главной формой приложения.

Палитра компонентов расположена в правой части главного окна и имеет вид многостраничного блокнота, где на каждой странице размещён набор пиктограмм её компонентов. Активизировать группу компонентов требуемой страницы надо щелчком мыши на её закладке.

Для добавления какого-либо компонента в Окно формы надо выбрать его пиктограмму на панели компонентов, щёлкнуть на нём левой кнопкой мыши, а затем возможны два варианта действий:

если надо точно позиционировать компонент, надо подвести курсор мыши в нужное место Окна формы и щёлкнуть левой кнопкой мыши один раз; левый верхний угол компонента совпадёт при этом с положением конца стрелки курсора мыши;

если надо поместить компонент в центр Окна формы, используется двойной щелчок на пиктограмме.

Компоненты Delphi

Библиотека визуальных компонентов (Visual Component Library — VCL) Delphi содержит множество предопределенных типов компонентов, из которых пользователь может строить свою прикладную программу. Палитра компонентов расположена справа в полосе инструментальных панелей интегрированной среды разработки Delphi.

Поскольку число страниц в палитре велико и не все закладки видны на экране одновременно, в правой части палитры компонентов имеются две кнопки со стрелками, направленными влево и вправо. Эти кнопки позволяют перемещать отображаемую на экране часть палитры.

Чтобы перенести компонент на форму, надо открыть соответствующую страницу библиотеки и указать курсором мыши необходимый компонент. При этом кнопкауказатель, размещенная в левой части палитры компонентов, приобретет вид не нажатой кнопки. Это значит, что программист находится в состоянии, когда собирается поместить компонент на форму. Чтобы поместить выбранный компонент на форму надо сделать щелчок мышью в нужном месте формы.

Есть и другой способ поместить компонент на форму – достаточно сделать двойной щелчок на пиктограмме компонента, и он автоматически разместится в центре формы. Если компонент был выбран, но его не следует размещать на форме, то достаточно нажать

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]