Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Программирование.pdf
Скачиваний:
33
Добавлен:
12.08.2019
Размер:
4.74 Mб
Скачать

vk.com/club152685050 | vk.com/id446425943

Лекция 4

1

Лекция 4

 

Тема: Основы работы в среде Delphi. Форма, её основные свойства

План

1.Основное окно ИСР Delphi

2.Палитра компонентов

3.Инспектор кода

4.Инспектор объектов

Интегрированная среда разработки Delphi

Интегрированная Среда Разработки (Integrated Development Environment — IDE, в дальнейшем мы будем использовать для нее аббревиатуру ИСР) — это среда, в которой есть все необходимое для проектирования, запуска и тестирования приложений и где все нацелено на облегчение процесса создания программ. ИСР интегрирует в себе редактор кодов, отладчик, инструментальные панели, редактор изображений, инструментарий баз данных — все, с чем приходится работать.

Запустите Delphi с помощью меню Windows Пуск | Программы. Когда вы щелкнете на пиктограмме Delphi, перед вами откроется основное окно Интегрированной Среды Разработки.

Основное окно Интегрированной Среды Разработки в Delphi

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

Ниже полосы главного меню расположены две инструментальные панели. Левая панель содержит два ряда быстрых кнопок, дублирующих некоторые наиболее часто используемые команды меню. Правая панель содержит палитру компонентов библиотеки визуальных компонентов (Visual

vk.com/club152685050 | vk.com/id446425943

Лекция 4

2

Component Library — VCL). Именно эта библиотека и составляет основной предмет рассмотрения данной книги. В дальнейшем мы для краткости будем называть библиотеку визуальных компонентов просто библиотекой, благо это ближе к истине, так как в ней содержатся и визуальные (видимые пользователю), и невизуальные компоненты (они явным образом не видны пользователю). Палитра компонентов содержит ряд страниц, закладки которых видны в ее верхней части.

В основном поле окна вы можете видеть слева окно Инспектора Объектов (Object Inspector), с помощью которого вы в дальнейшем будете задавать свойства компонентов и обработчики событий. Правее вы можете видеть окно пустой формы, готовой для переноса на нее компонентов. Под ним расположено окно Редактора Кодов. Обычно оно при первом взгляде на экран невидимо, так как его размер равен размеру формы и окно Редактора Кодов полностью перекрывается окном формы. На рис. это окно немного сдвинуто и выглядывает из под окна формы.

Палитра компонентов — витрина библиотеки визуальных компонентов (Visual Component Library — VCL). Подробное описание палитры и методики работы с ней будет дано в главе 2, а компонентам, отображаемым в палитре, посвящена вся книга. Поэтому пока ограничимся только кратким рассмотрением техники переноса компонентов из палитры на форму. Чтобы осуществить эту операцию, надо открыть соответствующую страницу библиотеки и указать курсором мыши необходимый компонент. Затем надо сделать щелчок мышью в нужном месте формы и компонент разместится там. В дальнейшем вы можете отбуксировать его в любое другое место.

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

Одной из наиболее важных частей среды Delphi является окно Редактора Кода. Его вы можете видеть на рисунках. В действительности, если вы откроете в первый раз это окно, оно может выглядеть несколько иначе и включать в себя слева еще одно встроенное окно — окно Исследователя Кода Code Explorer. В большинстве случаев вы просто можете закрыть его, щелкнув на кнопке с крестиком в его правом верхнем углу. Чтобы оно вообще больше не появлялось, выполните команду Tools | Environment Options и в открывшемся диалоговом окне на странице Explorer выключите опцию Automatically show Explorer (показывать автоматически окно Code Explorer).

vk.com/club152685050 | vk.com/id446425943

Лекция 4

3

Explorer (а) и со встроенным окном (б)

Редактор Кода является полноценным программным редактором. Его можно настраивать на различный стиль работы, который вам более привычен. В редакторе применяется выделением цветом синтаксических элементов. Жирным шрифтом выделяются ключевые слова языка Object Pascal. Синим курсивом выделяются комментарии (например, на рис. 1.2 это комментарий «{ Private declarations }»).

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

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

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

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

процедуры называются методами и часто работают незримо для

vk.com/club152685050 | vk.com/id446425943

Лекция 4

4

пользователя. Так что более полно объект можно характеризовать как совокупность свойств и методов. Перенеся объект на форму и нажав клавишу F1 вы можете увидеть во встроенной справке Delphi все его свойства

(propeties) и методы (methods).

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

Окно Инспектора Объектов имеет две страницы.

Страница

 

 

 

свойств (а) и

)

)

страница

 

событий

(б)

 

 

Инспектора

 

 

 

Объектов

 

 

 

Страница свойств (Properties) Инспектора Объектов (см. рис. 1.3 а), показывает свойства того объекта, который в данный момент выделен вами. Щелкните на окне пустой формы и на странице свойств Инспектора Объектов вы сможете увидеть свойства формы (они показаны на рис. 1.3 а). Вы можете изменять эти свойства. Например, измените свойство Caption (надпись) вашей формы, написав в нем «Моя форма», и вы увидите, что эта надпись появится в полосе заголовка вашей формы.

vk.com/club152685050 | vk.com/id446425943

Лекция 4

5

Если щелкнуть на некоторых свойствах, например, на свойстве Color (цвет), то справа от имени свойства откроется окно выпадающего списка. Нажав в нем на кнопочку со стрелкой вниз, вы можете увидеть список возможных значений свойства. Например, смените значение свойства Color с принятого по умолчанию clBtnFace (цвет поверхности кнопок) на clWindow (цвет окна). Вы увидите, что поверхность формы изменит свой цвет.

Рядом с некоторыми свойствами вы можете видеть знак плюс (см., например, свойство BorderIcons на рис. а). Это означает, что данное свойство является объектом, который в свою очередь имеет ряд свойств.

Найдите, например, свойство Font (шрифт). Рядом с ним вы увидите знак плюс. Щелкните на этом плюсе или сделайте двойной щелчок на свойстве Font. Вы увидите, что откроется таблица таких свойств, как Color (цвет), Height (высота), Name (имя шрифта) и др. Среди них вы увидите свойство Style (стиль), около которого тоже имеется знак плюс. Щелчок на этом плюсе или двойной щелчок на этом свойстве раскроет дополнительный список подсвойств, в котором вы можете, например, установить в true свойство fsBold (жирный). Кстати, для смены true на false и обратно в подобных булевых свойствах не обязательно выбирать значение из выпадающего списка. Достаточно сделать двойной щелчок на значения свойства, и оно изменится. После того, как вы просмотрели или изменили подсвойства, вы можете опять сделать двойной щелчок на головном свойстве или щелчок на знаке минус около него, и список подсвойств свернется.

Страница событий (Events) составляет вторую часть Инспектора Объектов (рис. б). На ней указаны все события, на которые может реагировать выбранный объект. Например, если вам надо выполнить какието действия в момент создания формы (обычно это различные операции настройки), то вы должны выделить событие OnCreate. Рядом с именем этого события откроется окно с выпадающим списком. Если вы уже написали в своем приложении какие-то обработчики событий и хотите при событии OnCreate использовать один из них, вы можете выбрать необходимый обработчик из выпадающего списка. Если же вам надо написать новый обработчик, то сделайте двойной щелчок на пустом окне списка.

Вы попадете в окно Редактора Кода, в котором увидите текст: procedure TForm1.FormCreate(Sender: TObject);

begin

end;

Курсор будет расположен в пустой строке между ключевыми словами begin и end. Увиденный вами код — это заготовка обработчика события, которую автоматически сделала Delphi. Вам остается только в промежутке между begin и end написать необходимые операторы.

Если вы сделали эти операции, то вернитесь в Инспектор Объектов, выделите в нем, например, событие OnActivate и нажмите в нем кнопку выпадающего списка. Вы увидите в нем введенный вами ранее обработчик

vk.com/club152685050 | vk.com/id446425943

Лекция 4

6

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

Пользуясь Инспектором Объектов вы можете получить контекстную справку по свойствам или событиям. Для этого выделите в окне Инспектора Объектов интересующее вас свойство или событие и нажмите клавишу F1.

Инспектор Объектов имеет возможность фильтрации свойств и событий и возможность группировать их по категориям. Для того, чтобы воспользоваться этими возможностями, щелкните в окне Инспектора Объектов правой кнопкой мыши. Во всплывшем меню вы можете выбрать раздел View. Вам будет показан ряд категорий свойств и событий, около каждой из которых имеется индикатор. Вы можете включить индикаторы только у некоторых категорий и тогда в Инспекторе Объектов вы увидите события и свойства только указанных категорий. Выбор раздела Toggle переключит видимость разделов: те, которые были видимы станут невидимы

инаоборот.

Втом же меню, всплывающем при щелчке правой кнопкой мыши, вы можете выбрать раздел Arrange и в нем установить одну из двух возможностей: by Name — упорядочить свойства и события по алфавитной последовательности их имен, или by Category — упорядочить их по категориям. При этом некоторые свойства могут попасть одновременно в несколько категорий. Но это не имеет значения: вы можете менять их значения в любой категории и они синхронно изменятся во всех категориях.

vk.com/club152685050 | vk.com/id446425943

Лекция 5

1

Лекция 5

Тема: Язык объектно-ориентированного проектирования Object Pascal. Структура проекта Delphi

План

1.Язык объектно-ориентированного проектирования Object Pascal

2.Структура файла головной программы приложения Delphi

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

Язык объектно-ориентированного проектирования Object Pascal

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

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

Структура файла головной программы приложения Delphi

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

Типичная головная программа приложения имеет вид:

Program

Project1;

 

Unit1

in

'Unitl.pas'

{Forml},

Unit2

in

'Unit2.pas'

{Form2};

{$*.RES}

{Здесь можно поместить описания каких-то констант, переменных, функций, процедур. Все это будет доступно только в пределах данного файла}

begin Application.Initialize;

Application.CreateForm(TForml, Forml); Application.CreateForm(TForm2, Form2); Application.Run;

vk.com/club152685050 | vk.com/id446425943

Лекция 5

2

end.

Начинается программа с ключевого слова program, после которого пишется имя программы. Оно совпадает с именем файла, в котором сохранен проект. Это же имя присваивается выполняемому файлу приложения. По умолчанию это имя Projectl.

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

Unit2.

Помещенные в фигурные скобки названия форм — это комментарии. Следующая строка текста — {$R *.RES} представляет собой директиву компилятора. Затем после ключевого слова begin и до последнего завершающего программу оператора end с точкой (end.) записано тело программы.

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

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

модуль.

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

Текст модулей

unit Unitl;

interface // Открытый интерферфейс модуля

{Список подключаемых модулей) uses

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

{Объявление класса формы}

type

TForml = class (TForm)

private

// Закрытый раздел класса

{Private

declarations}

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

vk.com/club152685050 | vk.com/id446425943

Лекция 5

3

public

// Открытый раздел класса

{ Public declarations }

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

end;

var

Forml: TForml;

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

implementation // Реализация модуля

{§R *.DFM}

{Сюда могут помещаться предложения uses, объявления типов, констант, переменных, к которым не будет доступа из других модулей. Тут же должны быть реализации всех объявленных в разделе interface функций и процедур, а также могут быть реализации любых дополнительных, не объявленных ранее функций и процедур.}

end.

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

Текст модуля состоит из двух основных разделов: interface

открытый интерфейс модуля, и implementation реализация модуля. Все,

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

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

vk.com/club152685050 | vk.com/id446425943

Лекция 5

4

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

var

Forml: TForml;

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

Затем следует раздел реализации implementation, в котором содержится код программы.

В модуль вы можете ввести еще два раздела, кроме interface и implementation: разделы initialization и finalization.

Проект Delphi состоит из форм, модулей, установок параметров проекта, ресурсов и т.д. Вся эта информация размещается в файлах.

При проектировании приложения Delphi создает следующие файлы:

Файл проекта

Этот текстовый файл используется для хранения

 

(.dpr)

информации о формах и модулях. В нем содержатся

 

 

операторы инициализации и запуска программы на

 

 

выполнение.

 

Файл модуля

Каждой создаваемой форме соответствует текстовый

 

(.pas)

файл модуля, используемый для хранения кода.

 

 

 

 

 

Файл формы

Это двоичный ИЛИ текстовый файл, который создается

 

(.dfm)

Delphi для хранения информации о ваших формах.

 

 

Каждому файлу формы соответствует файл модуля {.pas).

 

Файл

В этом файле хранятся установки параметров проекта.

 

параметров

 

 

 

проекта (.dfo)

 

 

 

Файл ресурсов

Этот бинарный файл содержит используемую проектом

 

(.res)

пиктограмму и прочие ресурсы.

 

Файлы

Это соответственно файлы резервных копий для файлов

 

резервных копий

проекта, формы и модуля.

 

{.-dp, ~df, ~pa)

 

 

 

 

 

 

 

Файл

Файл хранит конфигурацию всех окон.

 

конфигурации

 

 

 

окон (.dsk)

 

 

 

Следующая группа файлов создается компилятором:

 

Исполняемый файл (.ехе)

Это исполняемый файл вашего приложения.

 

 

 

 

Объектный файл модуля

Это откомпилированный файл модуля (.pas),

 

(.dcu)

 

который компонуется в окончательный

 

 

 

исполняемый файл.

 

Динамически

 

Этот файл создается в случае, если проектируется

 

 

 

 

 

vk.com/club152685050 | vk.com/id446425943

Лекция 5

5

присоединяемая DLL. библиотека (.dll)

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

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