Основы объектного программирования в системе турбо-паскаль

Объект в ТурбоПаскале — это структура данных, содержащая поля данных разных типов и заголовки способов и обобщающая структуру «Запись» (record).

Синтаксис описания объекта:

=

оbjесt поле;

поле;

способ;

способ;

end;

В отличие от записи полями объекта смогут быть, не считая данных, еще и способы, обрабатывающие эти сведенья

Способ- это процедура либо функция, заявленные в описания объекта. Синтаксис описания способа:

procedure (, :integer),

Способ имеет доступ к полям данных объекта, не требуя передачи их ему в виде параметров

Объявление способа в объявления объектного типа содержит лишь заголовок. Тело способа определяется вне объявления объекта. Его заголовок обязан содержать имя объекта, у которого в собствености способ. К примеру:

procedure

(, : integer);

begin

еnd;{Способ}

Способы подразделяют на статические и виртуальные. Виртуальный способ отличается от статического тем. что реализующий его код подсоединяется к исполняемой программе не в ходе компиляции, а в ходе исполнения, что достигается, так называемым, поздним связыванием. Это позволяет строить иерархию объектов с однообразными заглавиями способов, реализуемыми, но, разными кодами.

Синтаксис виртуального способа:

procedure (, : integer): virtual;

Не считая функций и обычных процедур, ТурбоПаскаль 6.0 реализует два особых типа способов: деструктор и конструктор.

Конструктор — это особый способ, инициализирующий объект, содержащий виртуальные способы, он объявляется намерено зарезервированным словом constructor. Конструктор инициализирует объект методом установления связи между специальной таблицей и объектом виртуальных способов, содержащей адреса кодов, реализующих виртуальные способы. Конструктор может кроме этого употребляться для инициализации полей данных объекта.

Деструктор — это особый способ, освобождающий память «кучи» от динамических объектов. Он объявляется с применением намерено зарезервированного слова destructor.

Фундаментальными отличительными особенностями объекта являются

• инкапсуляция — объединение записей с функциями и процедурами, трудящимися с этими записями;

• наследование — задание объекта, после этого применение его для построения иерархии порожденных объектов с наследованием доступа каждого из порожденных объектов к коду и данным предка;

• полиморфизм — задание одногоимени действию, которое передается вверх и вниз по иерархии объектов с реализацией этого действия методом, соответствующим каждому объекту в иерархии.

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

Инкапсуляция. Базой ответа задачи есть задание положения (позиции) отдельной точки на экране, обрисовываемого координатами Х и Y. Для задания координат подходит тип «запись»:

Pozition = record

X, Y : integer;

end;

Потом возможно нужно задать значения координат (такая процедура носит название инициализации). Создадим соответствующую процедуру:

procedure Init(CoordX, CoordY : integer);

begin

X : = CoordX;

Y : = CoordY;

end;

После этого потребуется знание фактических значений координат. Для этого вводим две функции:

function GetX : integer;

begin

GetX: = X;

end;

function GetY: integer;

begin

GetY: = Y;

end;

По отечественному плану процедура Init и функции GetX и GetY должны трудиться лишь с полями записи Pozition.

Введение объектов разрешает зафиксировать это положение, заявив и поля, и действия над ними в единой конструкции:

Pozition = object

X, Y: integer;

procedure Init(CoordX, CoordY : integer);

function GetX : integer;

function GetY : integer;

end;

Процедура Init и функции GetX и GetY являются способами объекта Pozition.

Для инициализации экземпляра типа Pozition достаточно позвать его способ, как если бы он был полем записи:

var

FirstPozition : Pozition;

FirstPozition.Init(10,15);

Способ задается равно как и процедура в модуле: в объекта записывается заголовок (как в секции Interface модуля); наряду с этим все поля, применяемые мето-дом, должны предшествовать его объявлению. Определение способа (расшифровка действий) происходит вне объявления объекта. Имя способа должно предваряться заглавием типа объекта, которому способ в собственности, сопровождаемым точкой. К примеру,

procedure Pozition. Init(CoordX, CoordY: integer);

begin

X: = CoordX:

Y: = CoordY;

end;

Увидим, что имена формальных параметров способа не смогут совпадать с именами полей данных объекта.

Кроме этого как модуль скрывает подробности реализации процедур от пользователя, объект может скрывать собственные поля и способы. Для этого употребляется главное слово private (персональный). Индивидуальные поля и способы доступны лишь в способа. Объявление выглядит следующим образом:

type

ObjectName=object

поле;

поле;

способ;

способ;

private

поле;

поле;

способ;

способ;

end;

Наследование. Разглядим точку с координатами Х и Y. Ее возможно сделать видимой либо невидимой, ей возможно задать цвет, ее возможно переместить. Создадим объект с этими возможностями:

Point=object

X,Y : integer;

procedure Init(CoordX, CoordY : integer);

function GetX : integer;

function GetY . integer;

Visible: Boolean;

Color: Word;

procedure Init(CoordX, CoordY : integer; InitCoIor : Word);

function Is Visible : Boolean;

procedure Show;{показывает точку}

procedure Blind; {стирает точку}

procedure Jump(NextX, NextY : integer);{nepeMeiuaer точку}

end;

Увидим, но, что поля X.Y и способы GetX, GetY фактически совпадают с методами объекта и соответствующими полями Pozition.

Турбо-Паскаль предоставляет возможность учесть эту обстановку. Нужно считать тип объекта Point порожденным типом Pozition, записав это следующим образом:

Point=object(Pozition)

Visible : Boolean;

Color : Word;

procedure Init(CoordX, CoordY : integer; InitColor : Word);

function Is Visible . Boolean;

procedure Show;

procedure Blind:

procedure Jump(NextX, NextY : integer);

end;

Объект Point сейчас наследует свойства объекта Pozition. Поля X,Y очевидно не заданы в Point, но Point ими владеет благодаря наследованию, т.е. возможно написать

Point.X:=17;

Суть объектно-ориентированного программирования содержится в работе с полями объекта через его способы.

Полиморфизм. Предположим, нужно создать объект «кружок». Разумеется, что новый объект должен иметь предком объект Point, владея всеми его особенностями, помимо этого. быть больше по размеру. Но, ясно, что «высветить» точку и закрашенную окружность не удастся одними и теми же командами. Турбо-Паскаль разрешает сохранить потомку имя родительского способа, «перекрывая» его. Дабы перекрыть родительский способ, нужно его с тем же именем, но с другим телом (кодом) и, в случае, если нужно, с другим комплектом параметров. Таковой способ делается виртуальным и к его объявлению добавляется слово virtual. Использование виртуальных способов налагает ограничения на процедуры инициализации, каковые должны записываться с зарезервированным словом constructor и иметь неспециализированное имя Init

Любой отдельный экземпляр объекта обязан инициализироваться посредством отдельного вызова конструктора

Для удаления и очистки динамически распределенных объектов существует особая процедура destructorDone.

Деструктор комбинирует ход освобождения памяти в «куче» с некоторыми вторыми задачами. Способ деструктора возможно пустыу), потому, что работу делает не только код тела, но и код, генерируемый Турбо-Паскалем в ответ на зарезервированное слово destructor.

ОБОЛОЧКА TURBO-VISION

Объектно-ориентированный подход разрешает создавать объектные среды, библиотеки объектов для применения при разработке программ. Особенно известность взяли объектные оболочки для разработки интерфейсов программ в некоем едином, ставшем стандартным, стиле.

Turbo-Vision — это оболочка для оконченных интерфейсов программ в среде Турбо-Паскаль предположений 6.0, 7.0.

Объектно-ориентированная библиотека направляться-Vision включает

• многократные перекрещивающиеся окна с изменяемыми размерами;

/

• выпадающие меню;

• помощь мыши;

• встроенную установку цвета;

• кнопки, полосы скроллинга, окна ввода, зависимые и свободные кнопки;

• стандартную обработку клавиш и нажатий мышки и другое.

Обычный отработанный интерфейс, создаваемый посредством Turbo-Vision, имеет сверху строчок меню, а снизу — строчок статуса.

Текст, что появляется в строчке статуса, в большинстве случаев выводит сообщения о текущем состоянии программы, показывая дешёвые тёплые клавиши либо подсказки для команд, каковые дешёвы пользователю сейчас.

В то время, когда «выпадает» меню. полоса подсветки пробегает по перечню элементов меню при перемещении мыши либо нажатии на клавиши курсора. Нажатием клавиши либо левой кнопки мыши выбирается подсвеченный элемент. Выбранный элемент меню отправляет команду в определенную часть программы.

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

Диалоговые окна довольно часто содержат кнопки — подсвеченные слова — каковые смогут активизироваться посредством мыши (либо переходом через клавишу Tab и нажатием клавиши ). Отображаемые слова, выбранные мышью, смогут быть установлены для передачи команд в программу.

Несложная программа на Turbo-Vision делает следующие действия:

• заполняет панель экрана полутеневым шаблоном;

• выводит на экран полосу меню (наверху) и строчок статуса (внизу);

• устанавливает обработчик для событий, инициированных от клавиш и мыши;

• сооружает объект меню и соединяет его с полосой меню;

• сооружает диалоговое окно;

• связывает диалоговое окно с меню;

• ожидает действий пользователя через мышь либо клавиатуру. Краеугольным объектом любой программы есть объект TApplication. TApplication — это слишком общий тип объекта. Он ничего не делает. TApplication употребляется для порожденных типов от TApplication. каковые содержат код программы. К примеру, в несложной демонстрационной программе HELLO.PAS, выводящей в стандартном для Turbo-Vision виде надпись HELLO, WORLD! определяется порожденный тип объекта THelloApp:

PHelloApp = ^HelloApp;

THelloApp = object(TApplication)

procedure GreetingBox;

procedure HadleEvent(var Event: TEvent); virtual;

procedure InitMenuBar; virtual;

procedure InitStatusLine; virtual;

end;

Как продемонстрировано тут, полезно выяснить тип указателя на любой тип определяемого объекта, потому, что большинство работы над объектами производится через указатели. Полиморфизм, в большинстве случаев, трудится через указатели.

THelloApp содержит значительно больше, чем четыре содержащихся в нем способа; порожденный объект наследует все от его предка. В определении THelloApp определяется, чем новый объект отличается от его предка TApplication. Все, что не переопределяется, наследуется в неизменном виде от TApplication.

Четыре способа, определенные в THelloApp, завершают приложения:

1) методHadleEvent определяет, что кое-какие события случились (и показывает это) и как на эти события отвечать вторым прикладным функциям; способ HadleEvent, определенный в TApplication, трудится с неспециализированными событиями, каковые появляются в любой программы, но нужно обеспечить обработку событий, специфичных для программы;

2) методInitMenuBar устанавливает меню дляполосы Меню программы (TApplication содержит полосу меню, но не сами меню);

3) способ InitStatusLine устанавливает текст строчка статуса внизу экрана; данный текст в большинстве случаев отображает сообщение о текущем состоянии программы, показывая дешёвые тёплые клавиши либо напоминая пользователю о некоторых действиях;

4) способ GreetingBox приводит к диалоговому окну в ответ на элемент меню Greeting; GreetingBox вызывается из способа HadleEvent в ответ на событие, переключаемое выбором элемента меню Greeting; в более сложных программах возможно применять разные способы в ответ на любой элемент меню, определяемый в начальном меню.

На верхнем уровне абстракции основная программа на Turbo-Vision выглядит подобно Hello и содержит три способа:

var

HelloWorld: THelloApp;

begin

HelloWorld.Init;

HelloWorld Run;

HelloWorld.Done;

end;

Любой из этих трех способов требует маленького пояснения.

Init — это нужный вызов конструктора. Все объекты, которые содержат виртуальные способы, должны быть созданы (через вызов их конструктора) до вызова любых вторых способов этого объекта. Все конструкторы Turbo-Vision имеют имя Init. Это эргономичное соглашение, которым мы рекомендуем пользоваться.

HelloWorld.Init устанавливает объекты основной программы для применения. Он очищает экран, устанавливает кое-какие значения для серьёзных переменных, заполняет панель экрана и выводит полосу и строку статуса меню. Он вызывает конструкторы многих вторых объектов, кое-какие из которых ни при каких обстоятельствах не видны, потому, что они вызываются в.

Практически вся работа программы в Turbo-Vision выполняется в способа основной программыRun. Определения способа Run тут нет, потому, что Run наследуется от родительского объекта TApplication.

Данный способ состоит, в большинстве случаев, из цикла repeat…until, продемонстрированном тут в псевдокоде;

repeat

;

;

until Quit;

Это не правильный код, а неспециализированная схема реализации Run. В сущности программа Turbo-Vision циклически делает две задачи: получение события (где событие — это, в сущности, «сделать что-нибудь») и обработку этого события. Одноиз событий вычисляется в цикл и команды некоторый вид выхода завершается.

Дестрактор Done в конечном итоге весьма несложен: он уничтожает все объекты программы — полосу меню, панель экрана и строку статуса — и удаляет драйверы и обработчик ошибок Turbo-Vision. Способ Done обязан отменять все действия, выполненные конструктором Init, а после этого вызывать TApplication.Done, что обрабатывает все стандартные элементы.

Объектно-ориентированное программирование с применением Turbo-Vision требует хорошего знания иерархии объектов и спецификаций их способов.

Кроме объектно-ориентированной оболочки Turbo-Vision для Турбо-Паскаля, существует подобная более развитая совокупность для языка C++. Объектно-ориентированное программирование стало базой интерфейса совокупности Windows. Современные объектно-ориентированные совокупности типа Visual Basic, Delphi совсем скрывают механизмы программирования и разрешают разрабатывать интерфейсы программ-приложений по большому счету без кодирования команд, пользуясь только средствами наглядного проектирования на экране дисплея.

9.4.* СРЕДА ОБЪЕКТНОГО ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ DELPHI

* Раздел о Delphi написан Е.А.Ереминым.

Созданный в 1970 г. Н. Виртом, язык программирования Паскаль не оставался чем-то неизменным. Не смотря на то, что главная его часть сохранилась прошлой, показался множество дополнений и усовершенствований, каковые были направлены на облегчение программирования задач все возрастающей сложности. К примеру, типа данных string не было в начальной версии языка, тогда как представить без него современный Паскаль фактически нереально.

Позднее были добавлены более сложные конструкции: Н. Вирт внес предложение структуру программы из модулей unit, для возможности реализации объектного программирования был введен тип object. В следствии возможности Паскаля существенно возросли и он так же, как и прежде имел возможность удовлетворить запросы любого самого изощренного системного программиста. Известна, к примеру, высокая оценка языка, которую дал в одной из собственных книг известный американский программист Питер Нортон: «Я пользуюсь и языком Паскаль, и языком Си. Мои популярные сервисные программы «Утилиты Нортона» были написаны на Паскале, а после этого переписаны на Си. Мне нравятся оба эти языка. Я считаю, что сам по себе Паскаль лучше, в нем меньше шансов допустить неточность…».

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

Дабы исправить это положение, в 1996 г. компания Borland, известная своими разработками в области реализации языков программирования, выпустила компилятор нового поколения Delphi. В первую очередь, это замечательный компилятор языка Паскаль. дополненного рядом значительно новых возможностей для программирования в среде Windows. Но не только. Delphi — это совокупность, имеющая интерфейс как следует нового типа, разрешающий при составлении текста программы видеть те графические объекты, для которыхона пишется -так именуемая, совокупность визуального программирования.

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

В отличие от классических совокупностей программирования, Delphi кроме того «сама» пишет большую часть текста программы: описания объектов, заголовки процедур и другое. Программисту остается лишь вписать нужные строки, определяющие личное поведение программы, каковые совокупность не в состоянии предугадать. Но кроме того тут Delphi во многих случаях сама показывает место, где нужно разместить эти строки.

Вершиной автоматизации процесса программирования являются, так именуемые, специалисты. Специалист — это диалоговое окно, которое оказывает помощь пользователю обрисовать, что он желает видеть в собственной программе. К примеру, Специалист проекта задаёт вопросы, нужно ли вам системное меню и какого именно из предложенных типов ваш проект. Проанализировав введенные ответы. Delphi пишет код программы на Паскале. Напомним, что специалисты смогут быть созданы самим пользователем.

Дабы составить себе некое представление о работе в Delphi, проследим за реализацией в совокупности конкретной пробной программы, рекомендованной в качестве первого шага освоения Delphi в одном из управлений. Опустим для простоты описание несущественных на данный момент подробностей, касающихся вида экрана и объектов управления на нем. Сосредоточим внимание на сути процесса создания программы в среде Delphi.

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

Сейчас попытаемся что-нибудь сделать сами. Выберем из предлагаемого широкого ассортимента стандартных объектов самый простой — кнопку. Отыщем ее изображение в верхней части экрана (в Delphi ее называютпалитрой компонентов) и щелкнем на нем мышкой. Тем самым мы дали совокупности знать, что нам нужна конкретно кнопка. Остается указать, в какое место формы поместить компонент. Подведем курсор «мыши» к требуемому месту и опять щелкнем — покажется изображение кнопки. При необходимости посредством мыши кнопку возможно легко передвинуть либо поменять ее размеры.

Увидим, что текст программы по окончании появления кнопки увеличился — Delphi машинально добавила нужное описание.

Уже на данный момент возможно взглянуть на то, что оказалось, в действии. Запустим программу и заметим на экране стандартное окно Windows, содержащее кнопку. В отличие от этапа проектирования, компоненты при исполнении программы «оживают»: в случае, если щелкнуть по данной кнопке мышкой, то будет видно, как она нажимается. (Действительно, никакого результата до тех пор пока нет, поскольку он еще не запрограммирован.)

Итак, мы уже запустили собственное Windows-приложение, не смотря на то, что не собрали еще ни одной строки текста с клавиатуры!

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

Form I .Color : = clAqua

Пара слов по ее расшифровке. Свойство Color (цвет) объекта Forml (отечественной формы) приобретает значение clAqua (буквы с1 говорят о цвете, a Aqua — это наименование одного из 16 стандартных цветов). Опять запустим программу и надавим кнопку — форма поменяет собственный цвет.

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

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

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

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

Какие конкретно еще перспективные черты заложены в совокупность Delphi?

Отметим, что Delphi трудится в среде Windows и разрешает создавать для нее программные продукты. Первая (16-разрядная) версия Delphi замечательно функционирует под любой разновидностью Windows, тогда как вторая (32-разрядная; более замечательная, но достаточно отлично совместимая с первой) требует более замечательной ОС, к примеру, Windows’95. Учитывая, что компания «Микрософт» -основной разработчик системного ПО для персональных компьютеров — уделяет на данный момент главное внимание конкретно формированию Windows, с данной точки зрения компилятор для Windows нельзя не принять перспективным.

Помимо этого, Delphi есть совокупностью объектного программирования. Delphi разрешает не только применять уже ставшие хорошими объекты типа object, но и разрешает создавать новые, каковые смогут иметь графическое изображение и владеть особенностями стандартных элементов среды Windows. Такие объекты стали называться визуальных компонентов; для их описания употребляется намерено зарезервированное слово class. Кроме уже видевшихся выше кнопки и формы, примерами визуальных компонентов могут служить меню, перечни, поля редактирования, полосы прокрутки, таблицы и многое-многое второе. К Delphi прилагается целая библиотека стандартных визуальных компонентов — Visual Component Library. Крайне важно, что библиотеку эту любой пользователь может пополнить, додавая в нее личные компоненты.

Еще одной значительной чертой совокупности программирования Delphi есть ее открытость — практически все имеющиеся в совокупности объекты реализованы на языке Паскаль и смогут быть легко дополнены новыми. К примеру, в случае, если вас по какой-либо причине не устраивает обычный редактор чисел, вы имеете возможность написать личный и подключить его к совокупности.

Так, среда Delphi содержит в себе все самые передовые черты совокупности программирования. Она есть замечательным и одновременно с этим несложным в применении инструментальным средством для приложений с современным интерфейсом (среди них и обучающих программ). Из-за собственного большого уровня совокупности программирования типа Delphi кроме того взяли особое наименование — Среда стремительной разработки приложений,RAD (Rapid Application Development).

В случае, если взглянуть на компоненты, входящие в стандартную библиотеку, то многие из них как будто бы намерено созданы для обучающих программ. Разглядим пара примеров.

Заберём радиокнопки — группу кнопок, названную так благодаря функциональному сходству с тумблерами в радиоаппаратуре. Главной изюминкой радиокнопок есть то, что из всей группы в надавленном состоянии постоянно находится лишь одна кнопка. В педагогической интерпретации это выглядит как самый примитивный способ опроса — выбор единственного верного ответа из перечня предложенных. В случае, если же вам захочется иметь пара верных ответов на вопрос, заберите другую разновидность кнопок — Check Box (в большинстве случаев данный термин переводят как «кнопки с свободной фиксацией»). У таких кнопок состояние никак не зависит от окружающих кнопок.

Для тех. кому классическое тестирование думается устаревшим, найдутся другие компоненты, к примеру: Image — образ, изображение. Кроме возможности разместить картину на экране, данный нужный компонент владеет свойством «ощущать на себе» щелчок мышки, что разрешает элементарно реализовать контроль вопросов типа «Отыщите и укажите на карте остров Мадагаскар». Помимо этого, во все. компоненты библиотеки Delphi заложена разработка «Drag and drop-«Перенеси и покинь». Благодаря ей возможно располагать объекты на экране в некотором роде при исполнении задания «Составьте схему из батареи, амперметра, резистора и выключателя».

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

Ответственным преимуществом Delphi как инструментальной среды есть то, что ее компилятор делает независимые ЕХЕ-файлы. Они будут трудиться в среде Windows кроме того на той ЭВМ, на которой нет совокупности Delphi. Это свойство выгодно отличает Delphi от вторых подобных сред, к примеру, от Микрософт Visual на данный момент.

Завершая краткое знакомство с совокупностью Delphi, разглядим кое-какие самые важные базисные понятия, лежащие в ее основе.

Все объекты в Delphi характеризуются особенностями.Свойство — это атрибут объекта, определяющий то, как объект выглядит либо как он может себя вести. К примеру, свойства, определяющие внешний вид кнопки: color — ее цвет, left и top -координаты левого верхнего угла, heigt и width — ширина и высота. Как пример особенностей, определяющих, как кнопка может себя вести, обрисуем свойство «enabled» (от британского давать возможность, разрешать, разблокировать, включать). Оно может принимать значения TRUE либо FALSE — в зависимости от этого кнопка или будет фиксировать на себе щелчок мыши, или нет.

Напомним, что свойство есть необычным обобщением понятия поля объекта object, поскольку кроме типа и имени дополнительно содержит чтения значения и способы записи поля. К примеру, при исполнении строчка Form I.Color := clAqua происходит не просто запись значения, характеризующего цвет, в определенное место памяти, а вызывается способ Forml.SetColor(clAqua). Данный способ не только создаёт присвоение, но и перекрашивает форму.

Еще одно серьёзное понятие Delphi — это событие. Термин «событие» заимствован из Windows, его значение несложнее всего растолковать на примерах. В частности, событиями являются действия пользователя на клавиатуру либо мышь (нажатие на клавишу либо ее отпускание, перемещение мыши и т.п.). Помимо этого, событием являются каждые трансформации состояния экрана: создание окна, изменение его размеров и многие другие (таблица с описанием полного перечня событии занимает пара страниц).

В ответ на любое событие в совокупности Windows передает управление обработчику события (event handler). Обработчик события — это программа, которая определяет реакцию объекта на это событие. В случае, если пользователь не предусмотрел действия по этому событию. Windows обработает его сама; в частности, она может событие.

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

Разглядим еще одно понятие -способ. Способ — это процедура либо функция класса, определяющая поведение объекта. Способ ведет к исполнению определенной последовательности действий, часть из которых возможно связана с трансформацией внешнего вида объекта. Так, использование к форме Forml процедуры Close не просто удаляет ее из перечня окон Windows, но и снабжает его исчезновение с экрана. Второй пример — способ SetFocus для формы переносит на нее фокус ввода, т.е. она делается активной и принимает комплект с клавиатуры. Помимо этого, способ выносит изображение активного окна на первый замысел и выделяет цветом его заголовок.

Напомним, что понятие способа в Delphi не отличается от введенного ранеепонятия при описании Object Pascal.

Языки программирования. Данные. Среда программирования Турбо Паскаль 1. Урок 33


Интересные записи:

Понравилась статья? Поделиться с друзьями: