Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

ВВЕДЕНИЕ. Delphi — мощная система визуального объектно-ориентированного проекти­рования, позволяющая решать множество задач




 

Delphi — мощная система визуального объектно-ориентированного проекти­рования, позволяющая решать множество задач, в частности:

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

• Быстро создавать (даже начинающим программистам) профессионально вы­глядящий оконный интерфейс для любых приложений, написанных на любом языке; интерфейс удовлетворяет всем требованиям Windows и автоматически настраивается на ту систему, которая установлена на компьютере пользовате­ля, поскольку использует многие функции, процедуры, библиотеки Windows.

• Создавать свои динамически присоединяемые библиотеки (DLL) компонентов, форм, функций, которые затем можно использовать из других языков про­граммирования.

• Создавать мощные системы работы с локальными и удаленными базами дан­ных любых типов; при этом имеются средства автономной отладки приложе­ний с последующим выходом в сеть.

• Формировать и печатать сложные отчеты, включающие таблицы, графики и т.п.

• Создавать справочные системы (файлы.hlp), как для своих приложений, так и для любых других, с которыми можно работать не только из приложений, но и просто через Windows.

• Создавать профессиональные программы установки для приложений Win­dows, учитывающие всю специфику и все требования Windows.

• и многое, многое другое.

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

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

Разберемся с основным понятием ООП — объектом. Для начала можно определить объект как некую совокупность данных и способов работы с ними. Данные можно рассматривать как поля записи. Это характеристики объек­та. Пользователь и объекты программы должны, конечно, иметь возможность чи­тать эти данные объекта, как-то их обрабатывать и записывать в объект новые зна­чения.

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

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

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

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

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

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

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

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

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

С целью организации динамического распределения памяти во все объекты заложены методы их создания — конструкторы и уничтожения — деструкторы. Конструкторы объектов, которые изначально должны присутствовать в приложении (прикладной программе), срабатывают при запуске программы. Деструкторы всех объектов, имеющихся в данный момент в приложении, срабатывают при завершении его работы. Но нередко и в процессе выполнения различные новые объ­екты (например новые окна документов) динамически создаются и уничтожаются с помощью их конструкторов и деструкторов.

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

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

Вы работаете в Интегрированной Среде Разработки (ИСР или Integrated deve­lopment environment — IDE) Delphi. Среда предоставляет вам формы (в приложе­нии их может быть несколько), на которых размещаются компоненты. Обычно это оконная форма, хотя могут быть и невидимые формы. На форму с помощью мыши переносятся и размещаются пиктограммы компонентов, имеющихся в библиоте­ках Delphi. С помощью простых манипуляций вы можете изменять размеры и рас­положение этих компонентов. При этом вы все время в процессе проектирования видите результат — изображение формы и расположенных на ней компонентов. Вам не надо мучиться, многократно запуская приложение и выбирая наиболее удачные размеры окна и компонентов. Результаты проектирования вы видите, даже не компилируя программу, немедленно после выполнения какой-то опера­ции с помощью мыши.

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

Компоненты могут быть визуальные, видимые при работе приложения, и не­визуальные, выполняющие те или иные служебные функции.

 





Поделиться с друзьями:


Дата добавления: 2015-03-29; Просмотров: 628; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.