Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа 1

.pdf
Скачиваний:
21
Добавлен:
18.03.2016
Размер:
921.96 Кб
Скачать

Лабораторная работа № 1

Тема: «Знакомство с элементами среды программирования Delphi»

Цель работы:

1.Закрепить теоретические сведения об основных элементах среды программирования Delphi (рабочий стол, панели меню, окна рабочего стола, компоненты, подсказки).

2.Научиться составлять каркас простейших программ в среде Delphi.

3.Реализовать программы заданий для самостоятельного выполнения.

Порядок работы:

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

2.Ознакомиться со способами создания приложений, сохранения проекта с данными, компиляции проекта.

3.Ознакомиться с элементами проекта: программный код проекта, код описания форм, модули форм, описание ресурсов, параметры проекта, резервные копии.

4.Выполнить практические задания по разработке приложений в среде

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

5.Для удобства работы файлы каждого создаваемого проекта лучше хранить в отдельной папке, которая должна содержать: файл проекта (.dpr), файл форм (.dfm), исходные модули (.pas), файл конфигурации (.cfg), файл опций (.dof), файл ресурсов (.res). Откомпилированный модуль (.dcu), исполняемый файл (.exe) сохранять не обязательно, т.к. при защите проекта компиляцию выполнять заново.

6.Защитить лабораторную работу, продемонстрировать программы всех заданий, ответить на контрольные вопросы по данной теме.

Краткие теоретические сведения

Программирование – это разработка логики программы, кодирование – это написание кода по уже разработанной логической схеме программы.

Среда программирования – это комплекс программ, которые разработаны для того. Чтобы создать удобное окружение для реализации концепции быстрой разработки приложений (RAD). Среда программирования предоставляет широкие возможности по разработке, отладке и контрольному запуску программ, при этом предоставляется удобный графический интерфейс пользователя, набор необходимых инструментов и дополнительных компонент, большое количество подсказок, файлы справки, которые позволяют программисту работать в комфортных условиях.

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

После загрузки интерфейс Delphi выглядит так, как показано на рисунке 1, и первоначально включает окна:

главное окно (включает главное меню, набор пиктограмм и палитру компонентов);

окно Инспектора объектов (Object Inspector);

окно Редактора кода (Unit1.pas);

окно Конструктора формы (Form1).

Рисунок 1– Вид интегрированной среды разработки Delphi (интерфейс)

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

Delphi является однодокументной средой и позволяет одновременно работать только с одним приложением (проектом приложения). Название проекта приложения выводится в строке заголовка главного окна в верхней части экрана (Delphi 7 – Project1). В дальнейшем рекомендуется это название изменять на другое, в зависимости от решаемой в проекте задачи.

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

Запуск среды осуществляется следующим образом: Пуск – Программы –

Borland Delphi 7 – Delphi 7.

После запуска среды на экране появляется рабочий стол, в верхней части которого находится главное окно.

Главное окно позволяет управлять всеми аспектами работы с программой и всегда присутствует на экране.

Задание:

Изучите элементы главного окна:

главное меню панель инструментов для быстрого доступа

воспользуйтесь справочным материалом приложения 1;

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

воспользуйтесь справочным материалом приложения 2.

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

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

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

Рисунок 2 – Вкладки инспектора объектов

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

Окно Редактора кода основной инструмент для описания алгоритмов программы. Полнофункциональный текстовый редактор, с помощью которого можно просматривать и редактировать исходный код программы. Редактор содержит многочисленные средства, облегчающие создание исходного кода на Object Pascal. Каждый модуль выводится в отдельной вкладке. Редактор кода представлен на рисунке 3. Если не производилось дополнительной настройки, то по умолчанию на переднем плане будет отображаться страница с именем Unit1 (Модуль 1), на которой будет располагаться окно, названное Form1 (Форма 1).

Рисунок 3 – Редактор кода Окно формы предназначено для визуального отображения и проектирования

графического интерфейса приложения.

Каждое приложение выполняется в собственном окне – главном окне, Delphi назначает его для каждого приложения автоматически, внешний вид окна представлен на рисунке 4.

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

Рисунок 4 – Окно формы

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

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

Форма – это интерфейсный элемент (окно проекта, диалоговое окно, информационное окно и т.д.) проектируемой программы вместе с отображаемыми и неотображаемыми компонентами, размещенными в нем.

ВDelphi все типы объектов, помещаемых в форму (в частности компонентов библиотек), оформляются в виде классов.

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

события, на которые он может реагировать.

Под свойством объекта подразумевается какая-либо его характеристика, например, размеры или имя.

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

Методы – это функции и процедуры, выполняющие действия над объектами (создание объекта).

Событие – любое воздействие от мыши или клавиатуры, либо действие. Объект, созданный на основе какого-либо класса, – это просто место в памяти,

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

Объектом является – само окно формы, размещенные в нем компоненты Button (Кнопка), Label (Метка), Memo (Область просмотра) и др.

Компонент – это объект, представляющий собой отдельный строительный блок программы во время проектирования.

Впроекте может содержаться несколько форм. Главная из них будет первой в списке форм в диалоговом окне Project Options, вызываемом командой Project \ Options.

Программный доступ к свойствам и методам объектов

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

<имя объекта>.<имя свойства>

После имени объекта пишется без пробела символ точки, а затем также без пробела пишется имя свойства.

Например, ссылка на свойство Caption метки Label1 осуществляется записью

Label1.Caption

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

Например, метки имеют свойство Font – шрифт, которое в свою очередь является объектом. У этого объекта имеется множество свойств, в частности, свойство Color – цвет шрифта. Чтобы сослаться на цвет шрифта метки Label1, надо написать Label1.Font.Color. Это означает: свойство Color объекта Font, принадлежащего объекту Label1.

Например, оператор

Label1.Font.Color:=clRed;

сделает надпись метки Label1 красной.

Аналогичная нотация с точкой используется и для доступа к методам объекта. Например, для метки, как и для большинства других объектов, определен метод

Free, который уничтожает метку и освобождает занимаемую ею память. Если в какой-то момент необходимо уничтожить метку Label1 в приложении, то можно написать оператор

Label1.Free;

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

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

Для процедур, объявленных в классе, в их описании в разделе implementation к имени процедуры должна добавляться ссылка на класс.

Имя процедуры Button1Click в описании этой процедуры в разделе implementation заменяется на TForm1.Button1Click. Для процедур, объявленных вне класса, такой замены не требуется.

Обращение к переменным и процедурам, описанным внутри и вне класса, из процедур, описанных вне класса, различается. К переменным и процедурам, описанным вне класса, обращение происходит просто по их именам, а к переменным и процедурам, описанным в классе, через имя объекта класса. Например, если вы вне класса хотите описать какую-то процедуру, изменяющую надпись метки Label1, вы должны обратиться к ее свойству Caption следующим образом: Form1.Label1.Caption. Только через ссылку на объект Form1 внешние по отношению к классу процедуры могут получить доступ ко всему, объявленному в классе.

Все эти ссылки на объект не требуются в процедурах, объявленных в классе. Поэтому в процедуре TForm1.Button1Click ссылка на объект Label1 не содержит дополнительной ссылки на объект формы.

Если в приложении создается несколько объектов одного класса, например, несколько форм класса TForm1, то проявляются более принципиальные различия между переменными, описанными внутри и вне класса. Переменные вне класса так и остаются в одном экземпляре. А переменные, описанные в классе, тиражируются столько раз, сколько объектов данного класса создано. Т.е. в каждом объекте класса TForm1 будут свои переменные, описанные в классе, и их значения никак не будут связаны друг с другом. Таким образом, в переменную, описанную внутри класса, можно заносить какую-то информацию, индивидуальную для каждого объекта

данного класса. А переменная, описанная в модуле вне описания класса, может хранить только одно значение,

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

Видимость отдельных элементов:

Элементы, объявленные в разделе interface модуля вне описания типа, видимы и доступны внутри данного модуля и из внешних модулей.

Элементы, объявленные в разделе implementation модуля, видимы и доступны внутри данного модуля, но не доступны из внешних модулей.

Элементы, объявленные в классе в разделе private, видимы и доступны только внутри данного модуля. При этом из процедур, объявленных внутри класса, к ним можно обращаться непосредственно по имени, а из других процедур – только со ссылкой на объект данного класса. Если в модуле описано несколько классов, то объекты этих классов взаимно видят элементы, описанные в их разделах private.

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

В классах, помимо обсуждавшихся ранее, могут быть еще разделы protected – защищенные. Элементы, объявленные в классе в разделе protected, видимы и доступны для любых объектов внутри данного модуля, а также для объектов классов – наследников данного класса в других модулях. Объекты из других модулей, классы которых не являются наследниками данного класса, защищенных элементов не видят.

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

Характеристика проекта

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

код проекта (DPR);

описания форм (DFM);

модули форм (PAS);

модули (PAS);

параметры проекта (DOF);

описание ресурсов (RES).

Взаимосвязи между отдельными частями (файлами) проекта показаны на рисунке 5.

Кроме приведенных файлов, автоматически могут создаваться и другие файлы, например, резервные копии файлов: ~DP – для файлов с расширением DPR; ~РА – для файлов с расширением PAS.

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

Рисунок 5 – Состав проекта

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

Файл проекта

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

program Project1; uses

Forms,

Unit1 in 'Unit1.pas' { Form1}; {$R *.RES}

begin

Application.Initialize; Application.CreateForm(Tform1, Form1); Application.Run;

end.

Имя проекта (программы) совпадает с именем файла проекта и указывается при сохранении этого файла на диске, первоначально это имя Project1. То же имя имеют файлы ресурсов и параметров проекта, при переименовании файла проекта данные файлы автоматически переименовываются.

Сборка всего проекта выполняется при компиляции файла проекта. При этом имя создаваемого приложения (ЕХЕ-файл) или динамически загружаемой библиотеки (DLL-файл) совпадает с названием файла проекта.

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

Кроме того, в разделе uses перечисляются подключаемые модули всех форм проекта, первоначально это модуль unit1 формы Form1. Название формы, ее идентификатор приведено в фигурных скобках. Директива in указывает на то, что модуль является обязательной частью проекта, а не просто файлом, используемом в проекте. Директива $R подключает к проекту все необходимые ресурсы (файлы с расширением .RES).

Программа проекта содержит всего три оператора, выполняющих:

Application.Initialize – инициализацию приложения,

Application.CreateForm – создание формы Form1

Application.Run – запуск приложения.

При выполнении разработчиком каких-либо операций с проектом код файла проекта формируется Delphi автоматически.

Например, при добавлении новой формы в файл проекта добавляются две строки кода, относящиеся к этой форме, а при исключении формы из проекта эти строки также автоматически исключаются.

Отображение кода файла проекта в окне Редактора кода выполняется командой Project/View Source (Проект/Просмотр источника).

В файле проекта для многих приложений имеется похожий код, поэтому в дальнейшем при рассмотрении большинства приложений содержимое этого файла нами не приводится.

Файлы формы

Для каждой формы в составе проекта автоматически создаются файл описания (DFM) и файл модуля (PAS).

Файл описания формы является ресурсом Delphi и содержит характеристики формы и ее компонентов. Разработчик обычно управляет этим файлом через окно Конструктора формы и Инспектор объектов. При конструировании формы в файл описания автоматически вносятся соответствующие изменения.

Содержимое файла описания формы определяет ее вид. Оно доступно через Конструктор формы. При необходимости можно отобразить этот файл на экране в текстовом виде, что выполняется командой View as Text (Просмотреть как текст) контекстного меню формы. При этом форма пропадает с экрана, а содержимое файла ее описания открывается в окне Редактора кода и доступно для просмотра и редактирования.

Файл модуля формы содержит описание класса формы. Для пустой формы, добавляемой к проекту по умолчанию, файл модуля содержит следующий код:

unit Unit1; 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.

Файл модуля формы создается Delphi автоматически при добавлении новой формы. По умолчанию к проекту добавляется новая форма типа TForm, не содержащая компонентов.

По умолчанию файл называется Unit1.pas, но его можно назвать любым другим именем, вроде main.pas.

Вразделе interface модуля формы содержится описание класса формы, а в разделе implementation – подключение к модулю директивой $R визуального описания соответствующей формы. При размещении на форме компонентов, а также при создании обработчиков событий в модуль формы вносятся соответствующие изменения.

Всписке используемых модулей uses перечислены основные модули, определяющие функциональность приложения:

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

Dialogs.

В секции описания типов описывается класс, соответствующий форме. В строке

var

Form1: Tform1;

создается переменная, представляющая собой экземпляр класса.

Тексты модулей форм отображаются и редактируются с помощью Редактора кода. Открыть модуль формы можно в стандартном окне открытия файла, вызываемом командой File/Open, или в диалоговом окне View Unit, которое появляется при выполнении команды View/Units... или нажатии комбинации клавиш <Ctrl>+<F12>. В окне открытия модуля можно выбрать также файл проекта. После выбора нужного модуля (или проекта) и нажатия кнопки ОК его текст появляется на отдельной странице Редактора кода.

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

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