Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Jarg050901.DOC
Скачиваний:
11
Добавлен:
31.03.2015
Размер:
110.59 Кб
Скачать

Допустим, что состав необходимых для решения задачи процедур (функций) определен. Возможно, что они использовались уже при решении задачи в среде Borland Pascal и возникла необходимость разработать новую реализацию в Delphi. Как их включить в Delphi и использовать? В Delphi реализован алгоритмический язык Object Pascal, он отличается несущественно от традиционного. Поэтому процедуры (функции), написанные для Borland Pascal, могут быть использованы и здесь. Надо иметь в виду, что в них не должно быть традиционных для операционной системы MS DOS операторов ввода/вывода. Ввод/вывод необходимо обеспечить средствами Delphi (через различные диалоговые окна).

Необходимые процедуры (функции) должны быть оформлены в виде модулей (Unit). Структура модулей в Delphi расширена по сравнению с Borland Pascal, но мы не будем на этом останавливаться. В Delphi каждой (без исключений!) форме соответствует свой модуль. Но модуль может существовать и без формы. Для создания нового модуля необходимо выбрать из меню Delphi: File – New – Unit. В ответ откроется пустой модуль, куда по традиционным правилам можно записать все необходимое.

unit Unit3;

interface

{Место для заголовков процедур и функций}

implementation

{Место для реализаций процедур и функций}

end.

Если модули в виде файлов с расширением *.pas уже имеются, то используется другой способ их подключения: выбрать из меню Delphi: View – Project Manager. Появится знакомое нам окно. В нем выбирайте Add: откроется диалоговое окно, в котором выбирается подключаемый модуль. Допускается подключение модулей как в исходном (расширение *.pas), так и в оттранслированном виде (расширение *.tpu).

Вызов процедур и функций из модуля выполняется как обычно, не забудьте только включить в нужном месте оператор Uses < имя модуля >;

    1. Объектно-ориентированный подход

При объектно-ориентированном подходе в интерфейсном разделе модуля задаются описания классов, в разделе реализации – тексты методов. Однако средства объектно-ориентированного программирования (ООП) получили в Delphi дальнейшее развитие по сравнению c Borland Pascal 7.0, и поэтому мы остановимся на них подробнее. В Delphi имеется два подхода к ООП:

  • “классический”, заимствованный из Borland Pascal 7.0;

  • подход Delphi.

При классическом подходе для описания объектов используется ключевое слово Object. Создание и использование переменных типа объект ничем не отличается от аналогичных действий в Borland Pascal 7.0.

В Delphi разработан новый подход, похожий на применяемый в языке С++. Введены понятия “класс” и “объект”. Объект – это конкретный предмет в окружающем нас мире. Например, прямоугольный треугольник ABC с катетами 4 и 5. Класс – это совокупность объектов с одинаковыми свойствами (задаются переменными) и одинаковым поведением (пове­де­ние задается методами). Например, класс “прямоугольные треугольники”. Необходимо отметить, что и в теоретических работах по ООП используется, как правило, такая терминология. Важно запомнить разное содержание понятия “объект” в этих двух подходах, что показано в табл. 3.1.

Таблица 3.1

Borland Pascal

Delphi

Object

Class

Экземпляр объекта, переменная типа объект

Объект

Кроме этой, терминологической, разницы имеется и существенная разница в реализации, в зависимости от того, объявлен ли Class или Object. Рассмотрим это на примерах.

Пример 1. Классический подход.

Пусть наше приложение состоит из одной формы и двух модулей: первый модуль соответствует форме, а второй содержит объявление объекта. Форма приведена на рис. 3.1.

Рис. 3.1. Окно приложения

Реализация модуля формы. Требуется дополнительное объявление

Var

MyObj :Calc6;

procedure TForm1.Button1Click(Sender: TObject);

Var

k,l :byte;

sig :integer;

begin

Val(Edit1.Text,k,sig);

if sig<>0 then

ShowMessage ('Требуется ввести положительное целое число');

Val(Edit2.Text,l,sig);

if sig<>0 then

ShowMessage ('Требуется ввести положительное целое число');

MyObj.Init(k,l);

Edit3.Text:=IntToStr(MyObj.Res);

end;

Реализация дополнительного модуля с объектом.

unit modul2;

interface

Type

Calc6=Object

I,j :byte;

Procedure Init(Newi,Newj:byte);

Function Res :byte;

End;

implementation

Procedure Calc6.Init(Newi,Newj :byte);

Var

sig:integer;

Begin

i:=Newi;

j:=Newj;

end;

Function Calc6.Res:byte;

begin

Res:=2*i+6*j;

end;

end.

При классическом подходе в Delphi как и в Borland Pascal объявление переменной типа объект (Var MyObj:Calc6;) означает выделение памяти для MyObj . Обратим здесь внимание на это обстоятельство потому, что в следующем примере будет по-другому.

Пример 2. Подход Delphi.

Пусть наше приложение состоит из одной формы и двух модулей: первый модуль соответствует форме, а второй – содержит объявление классов. Форма приведена на рис. 3.2.

Рис. 3.2. Окно приложения

Модуль объявления классов.

unit Modul2A;

interface

Type

Esimene=Class(TObject)

{Объявим класс, по умолчанию предшественником всех классов }

{является класс Delphi TObject; его можно явно и не задавать}

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