Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_po_OOP_Delphi.docx
Скачиваний:
54
Добавлен:
31.05.2015
Размер:
2.39 Mб
Скачать

Лекции по курсу «Объектно-ориентированное программирование»

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

Темы:

  1. Delphi. Основные понятия ООП. Принципы ООП.

  2. СТРУКТУРА МОДУЛЯ

  3. ОСНОВНЫЕ ПОНЯТИЯ ООП (В терминах Object Pascal)

  4. ПРИНЦИПЫ ООП : ИНКАПСУЛЯЦИЯ

  5. НАСЛЕ́ДОВАНИЕ

  6. ПОЛИМОРФИ́ЗМ

  7. ОБЛАСТИ ВИДИМОСТИ

  8. ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ

  9. НЕКОТОРЫЕ ПОЛЕЗНЫЕ ФУНКЦИИ: ФУНКЦИИ РАБОТЫ СО СТРОКАМИ

  10. ФУНКЦИИ РАБОТЫ С ФАЙЛАМИ

  11. ПОСТРОЕНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА

  12. Основные понятия, Элементы управления

  13. Форма, работа с формами

  14. Модальные формы

  15. ФРЕЙМЫ (Frame)

  16. ОБЗОР КОМПОНЕНТОВ БИБЛИОТЕКИ VCL DELPHI

  17. КОМПОНЕНТЫ ВВОДА И ОТОБРАЖЕНИЯ ТЕКСТОВОЙ ИНФОРМАЦИИ.

  18. КНОПКИ, ИНДИКАТОРЫ, УПРАВЛЯЮЩИЕ ЭЛЕМЕНТЫ

  19. КОМПОНЕНТЫ МЕНЮ

  20. ОБРАБОТКА СОБЫТИЙ КЛАВИАТУРЫ И МЫШИ

  21. РАБОТА С ПРОЦЕССАМИ И ПОТОКАМИ

Запуск внешней программы функцией WinExec

Порождение процесса функцией CreateProcess

Организация многопоточных приложений Класс TThread

  1. РАБОТА С ПРИЛОЖЕНИЯМИ WORD И EXCEL

  2. РАБОТА С Базами данных

  1. Delphi. Основные понятия ООП. Принципы ООП.

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

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

Перечислим основные задачи, которые позволяет решать Delphi:

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

  2. Быстро создавать оконный интерфейс.

  3. Создавать системы для работы с локальными и удаленными базами данных любых типов.

  4. Создавать многозвенные распределенные приложения, основанные на различных технологиях.

  5. Создавать приложения, которые управляют другими приложениями, в частности, такими программами Microsoft Office, как Word, Excel и др.

  6. Создавать кросс-платформенные приложения, которые можно компилировать и эксплуатировать как в Windows, так и в системе Linux.

  7. Создавать приложения различных классов для работы в Интернет.

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

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

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

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

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

Объект определим как экземпляр класса - совокупность полей и методов.

Возможности объектно-ориентированного программирования в Delphi базируются на свойствах языка Object Pascal.

Проект в Delphi представляет собой набор программных единиц – модулей. Модуль на английском языке называется Unit.

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

Все объекты компонентов размещаются в объектах — формах. Для каждой формы, которую вы проектируете в своем приложении, Delphi создает отдельный модуль.

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

program Project2;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1},

Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);

Application.Run;

end.

После заголовка в тексте программы располагается предложение uses. В этом предложении перечисляются модули, загружаемые программой. Первый модуль Forms — системный. А следующие — модули разработанных вами форм. Данный пример подразумевает, что вы создали в проекте две формы с именами Forml и Form2 в модулях с именами Unitl и Unit2. Помещенные в фигурные скобки названия форм — это комментарии. Затем после ключевого слова begin и до последнего завершающего программу оператора end с точкой (end.) записано тело программы.

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

В случае если Вы пишите консольное приложение, то головная программа выглядит проще:

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

begin

{ TODO -oUser -cConsole Main : Insert code here }

end.

Директива компилятора $AppType устанавливает тип приложения : GUI или Console. Значение директивы по умолчанию определяет графическое приложение.

Головная программа – это файл с расширением dpr.

  1. Структура модуля

Рассмотрим теперь, как выглядят тексты модулей.

unit Unit4;

Interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;

type

TForm1 = class(TForm)

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Implementation

{$R *.dfm}

end.

Модуль начинается с ключевого слова unit, после которого пишется имя модуля. Оно совпадает с именем файла, в которым вы сохранили свой модуль.

Текст модуля состоит из двух основных разделов: interface открытый(внешний) интерфейс модуля, и implementation реализация модуля. Все, что помещается непосредственно в раздел interface (типы, переменные, константы, функции, процедуры), может быть использовано другими модулями программы. Все, что помещается в раздел implementation — внутреннее дело модуля. Внешние модули не могут видеть типы, переменные, константы, функции и процедуры, размещенные в разделе реализации.

В разделе interface после предложения uses, содержащего список подключаемых модулей, вы можете видеть заготовку объявления класса вашей формы, подготовленную Delphi. Имя класса вашей формы -- TForml. Класс содержит два раздела:

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

После завершения объявления класса формы вы можете видеть строки

var

Forml: TForml;

Это объявляется переменная Forml класса TForml, т.е. объявляется ваша

форма как объекта класса TForml. Затем следует пока пустой раздел реализации implementation. Раздел implementation включает в себя реализацию модуля. Основное тело модуля составляет коды, реализующие объявленные функции и процедуры.

В данном примере раздел implementation содержит директиву {$R} Директива компилятора {$R} указывает файлы ресурсов (.DFM, .RES), которые должны быть включены в выполняемый модуль или в библиотеку. Указанный файл должен быть файлом ресурсов Windows. По умолчанию расширение файлов ресурсов – файл с расширением .RES. В процессе компоновки компилированной программы или библиотеки файлы, указанные в директивах {$R}, копируются в выполняемый модуль. Компоновщик Delphi ищет эти файлы в том каталоге, в котором расположен модуль, содержащий директиву {$R}.

При генерации кода модуля, содержащего форму, Delphi автоматически включает в файл .pas директиву {$R *.DFM}, обеспечивающую компоновку файлов ресурсов форм. Эту директиву нельзя удалять из текста модуля, так как в противном случае загрузочный модуль не будет создан и сгенерируется исключение EResNotFound.

Существуют еще 2 необязательных раздела: initialization – включает в себя операторы, выполняющиеся только 1 раз при первом обращении программы к данному модулю. В этом разделе могут быть операторы, производящие начальную настройку модуля. Если в программе есть несколько модулей, содержащих разделы initialization, то последовательность выполнения операторов этих разделов определяется последовательностью указания модулей в операторах uses. Например если в головной программе имеется оператор uses unit1,unit2, unit3 , а модуле init1 имеется оператор uses unit3, то последовательность выполнения разделов initialization будет следующей: unit3, unit1,unit2.

Пример применения такого раздела может быть перенос кода головной программы

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);

Application.Run;

В раздел initialization какого-либо из объявленных модулей.

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

  1. ОСНОВНЫЕ ПОНЯТИЯ ООП (В терминах Object Pascal)

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

Пример класса:

unit Unit2;

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