3678 ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

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

РАЗРАБОТКА ПРОГРАММHОГО ОБЕСПЕЧЕHИЯ             В ИНТЕГРИРОВАННОЙ СРЕДЕ DELPHI

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

1. Теоретическая часть

1.1. Общие сведения

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

Все эти этапы выполняются с  использованием  интегрированной среды разработки (ИСР)  Delphi.

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

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

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

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

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

 

 

 

 

1.2. Структура интегрированной среды и принципы работы

в основном меню

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

Палитра

компонентов

В Delphi  вид окна представ­лен на рис. 1. В верхней части окна ИСР расположена полоса главного меню. Ее состав несколь­ко различается от версии к версии и, кроме того, зависит от варианта Delphi. На рис. 1 приведен вид окна для варианта Delphi 7 Enterprise.

 

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

 

Ниже полосы главного меню расположены две инструментальные панели. Левая панель (состоящая в свою очередь из нескольких панелей) содержит два ряда быстрых кнопок, дублирующих некоторые наиболее часто используемые команды меню. Правая панель содержит палитру компонентов библиотеки визу­альных компонентов. Палитра компонентов содержит ряд страниц, закладки ко­торых видны в ее верхней части. Состав палитры зависит не только от варианта Delphi, но и от того, создается ли приложение Windows, или кросс-платформен­ное приложение. В зависимости от этого палитра компонентов отображает или со­став Visual Component Library — VCL, или состав Cross-Platform Component Libra­ry — CLX. В версиях, младше Delphi 7, имеется только VCL.

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

В основном поле окна слева находятся два окна: сверху — Дерево Объ­ектов (Object TreeView), под ним — Инспектор Объектов (Object Inspector). Окно Дерево Объектов отображает иерархическую связь визуальных и невизуаль­ных компонентов и объектов приложения пользователя.

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

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

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

 

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

 

Палитра компонентов — это витрина той библиотеки компонентов — VCL или CLX, с которой работает пользователь. При создании приложений для Windows работают с VCL. Но если создается кросс-платформенное приложение, выполнив коман­ду File | New | CLX Application, то палитра компонентов начинает отображать страни­цы CLX.

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

Поскольку число предопределенных компонентов, конечно, возрастает от вер­сии к версии, то наиболее полной является библиотека Delphi 7.

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

 

1.4. Пункты главного меню

1.4.1. Пункт меню «File»

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

  1. Первая секция дает возможность создать новый проект, форму, модуль, отчет и т.д.
  2. Вторая секция позволяет открывать с диска файлы проекта.
  3. Третья позволяет сохранять открытые файлы на диске. Здесь

можно закрыть активный файл в редакторе кода или закрыть весь проект.

  1. Четвертая позволяет подключать в текущий модуль другие в

открытом проекте.

  1. Пятая управляет печатью.
  2. Шестая секция - выход из Delphi.

«New Application» начинает новый проект, «Open Project» открывает существующий проект и т.д. Вложенный список «Reopen» позволяет открыть файл или проект, который недавно открывался. При создании нового модуля Delphi дает ему имя по умолчанию. Можно изменить это имя на что-нибудь более предпочтительное, чтобы название подходило к функциональным принадлежностям данного модуля (например, MAIN.PAS) с помощью пункта для первого сохранения «Save» или для последующего изменения названия «Save As…». «Save File» сохраняет только редактируемый файл, но не весь проект. Для сохранения всех файлов проекта необходимо воспользоваться «Save All».  «Close» закрывает файл из окна редактора. Если файл был изменен, произойдет запрос сохранений перед закрытием. «Close All» закрывает все открытые файлы проекта.

 

1.4.2. Пункт меню «Edit»

«Edit» помимо прочих содержит команды «Undo» и «Redo», которые могут быть полезны при работе в редакторе для устранения последствий при неправильных действиях, например, если случайно удален нужный фрагмент текста или удален компонент из проектировщика форм.

Назначение команд «Cut», «Copy», «Paste» и «Delete» такое же, как во всех остальных приложениях Windows, но их можно применять не только к тексту, но и к визуальным компонентам, например, если необходимо размножить необходимый компонент на форме.

Команды третьей секции предназначены для работы с редактором формы. «Bring to Front» - установить выбранный компонент на уровень выше; «Send to Back» - компонент на уровень ниже; «Align...» - выравнивание компонентов, совместное позиционирование;«Size» - точные размеры компонента; «Tab Order» - порядок перехода по элементам формы с помощью кнопки Tab.

1.4.3.Пункт меню «View»

Выпадающее меню просмотра «View» позволяет вывести на экран или скрыть различные элементы среды проектирования Delphi и открыть окна, связанные с интегрированным отладчиком.

Рассмотрим наиболее важный пункт меню – «Debug Windows».

Этот пункт полезен при отладке программ. Он имеет подменю, включающее в себя пункты вызова отладчиков, встроенных в Delphi (см. таблицу).

Breakpoints

Активизирует диалоговое окно списка точек прерывания — Break­point List. Оно покажет все заданные для отладки точки прерывания. Если щелкнуть правой кнопкой мыши в этом окне, появится меню, позволяющее  добавлять, изменять и удалять отладочные точки прерывания, формулировать условия прерывания

Call Stack

Активизирует диалоговое окно стека вызовов — Call Stack. Оно по­казывает последовательность, в которой вызываются процедуры и функции в выполняемом приложении

Watches

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

Threads

Показывает список потоков (нитей кода — threads), которые в дан­ный момент выполняются

Local Variables

Показывает значения локальных переменных выполняемой функ­ции

Modules

Активизирует диалоговое окно списка модулей — Module List, со­держащее перечень всех модулей, загруженных в память при вы­полнении данного проекта. Этот список включает выполняемые мо­дули и библиотеки DLL

Event Log

Активизирует окно, отображающее протокол произошедших собы­тий

Окончание таблицы

CPU

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

FPU

Активизирует окно FPU, позволяющее наблюдать информацию Floating-Point Unit в CPU или ММХ — расширенную версию Intel для процессоров Pentium

1.5. Окно редактора кода

Одной из наиболее важных частей среды Delphi является окно редактора кода (рис. 3).

 

 

Рис. 3. Окно редактора кода

 

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

Если в программе три окна, то они будут взаимодействовать в процессе работы с тремя так называемыми модулями(Unit). Все эти модули и отображаются в редакторе.

В окне кода пишется непосредственно текстовая часть программы.

 

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

Инспектор объектов (рис. 4.) обеспечивает простой и удобный интерфейс для изменения свойств объектов Delphi и управления событиями, на которые реагирует объект.

 

 

Рис. 4. Окно Инспектора объектов

 

Окно Object Inspector содержит две страницы. На первой, Properties, постоянно отображаются все доступные свойства выбранного компонента. В левой колонке содержится список, в правой – текущие значения по умолчанию. На второй странице, Events, - возможные обработчики событий для выбранного компонента. В левой колонке – названия, в правой – соответствующие свойства или процедуры. На рисунке можно видеть Object Inspector с установленными свойствами Form1.

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

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

 

1.7. Работа в Delphi

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

Для создания проекта необходимо освоить некоторые правила создания программы в Delphi.

 

 

1.7.1.Файловая структура проекта

Проект в Delphi изначально имеет следующие шесть файлов.

  1. Главный файл проекта автоматически создается Delphi и

изначально называется PROJECT1.DPR. Если необходимо переименовать название проекта, то нужно перезаписать этот файл, выбрав в меню <File> команду Save Project As…При задании имени следует придерживаться правил задания имен в Object Pascal. Под каким именем сохраняется проект, под таким именем и будет создаваться исполняемый EXE файл.

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

начале работы, называется по умолчанию UNIT1.PAS, но его можно назвать любым другим именем, например MAIN.PAS. Это делается аналогично переименованию названия проекта. Необходимо выбрать в меню «File» команду Save As… Сохраняется активный модуль в редакторе кода.

  1. Файл главной формы, который по умолчанию называется

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

  1. Файл PROJECT1.RES изначально содержит иконку для

проекта. Создается автоматически и имеет одноименное название с названием проекта.

  1. Файл PROJECT1.DSK содержит информацию о состоянии

рабочего пространства и окон во время разработки приложения.

  1. Исполняемый EXE файл, который создается в процессе

компиляции проекта.

При сохранении проекта под другим именем соответственно изменяется название файлов с расширением RES и DSK.

После компиляции программы получаются файлы с расширениями:

  • DCU - скомпилированные модули PAS для последующей

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

  • EXE - исполняемый файл;
  • ~PA, ~DP – backup-файлы редактора. Автоматически

создаются и содержат информацию перед последним сохранением.

 

1.7.2.Сохранение проекта

Чтобы в последствии открывать свой проект для дальнейшего корректирования и управления необходимо его сохранять на диске.

Лучше всего создать свою директорию для данной конкретной программы.  После создания поддиректории для хранения программы желательно выбрать пункт меню File | Save All. В результате сохраняются два файла. Первый - модуль (Unit), над которым производилась работа, второй - главный файл проекта.

 

1.7.3. Открытие проекта

Для открытия проекта необходимо выбрать пункт меню File|Open Project и выбрать название интересующего проекта DPR. При этом как открывается сам проект, так и становятся доступными все привязанные к нему файлы.

Если необходимо открыть для редактирования отдельный модуль, или модуль формы, выбирается пункт «Open», а затем файл с расширением PAS. В этом режиме будут доступны для редактирования только форма и модуль.

 

1.7.4. Создание приложения

Для создания нового приложения необходимо выбрать пункт меню File | New | Application. На экране появится форма. Название  по умолчанию будет  Form1. Изменить его можно в инспекторе объектов (Object Inspector), изменив значение свойства Caption на страничке свойств Properties.

Для помещения на проектируемую форму, например, стандартной кнопки на листообразной палитре компонентов одинарным щелчком мышки выбирается компонент под названием TButton. После этого нужно щелкнуть по форме, где необходимо эту кнопку оставить. Если повторить операцию несколько раз, на форме окажется несколько кнопок - Button1, Button2, Button3 и т.д. Кнопки можно передвигать по форме при нажатой левой клавише мыши. Также можно изменить название и другие свойства кнопок, воспользовавшись инспектором объектов. Для этого необходимо щелкнуть один раз на одной из кнопок. Она оказывается выделенной. После этого в инспекторе объектов отображаются все доступные свойства для этой кнопки. Аналогично названию формы название кнопки также меняется сменой свойства Caption.

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

Таким образом, располагая на форме необходимые интерфейсные элементы и задавая их свойства, оформляется внешний вид программы.

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

Для создания программного кода Delphi-приложения используется язык программирования Object Pascal. Язык во многом напоминает стандартный Pascal, однако расширен дополнительными синтаксическими конструкциями для работы с классами и объектами, обработки исключительных ситуаций и т.д.

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

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

procedure TForm1.Button1Click(Sender: TObject);

begin

end;

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

Команда, отвечающая за закрытие окна, – Close.Тогда эта процедура будет выглядеть так:

procedure TForm1.Button1Click(Sender: TObject);

begin

Close;

end;

При нажатии на кнопку Button1 программа закроется.

Еще один пример: при нажатии на кнопку Button2 окно программы окрашивается в белый цвет. Для этого в свойство Color компонента программы Form1 заносится константа белого цвета:

procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.Color:=clWhite;

end;

Для выбора реакций на события другого рода можно открыть страничку Events Инспектора Объектов, далее выбрать необходимое событие, написать на него реакцию.

 

1.7.5. Свойства Объектов

Каждый компонент, который помещается на форму, имеет свое отражение в окне Инспектора Объектов (Object Inspector). Как было сказано, Object Inspector имеет две «странички»: «Properties» (Свойства) и «Events» (События). Создание программы в Delphi сводится к «нанесению» компонентов на форму (которая также является компонентом) и настройке взаимодействия между ними путем:

1)   изменения значения свойств этих компонентов;

2)   написания адекватных реакций на события.

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

Существует несколько типов свойств в зависимости от их «природы», т.е. внутреннего устройства.

Простые свойства - это те, значения которых являются числами или строками. Например, свойства Left и Top принимают целые значения, определяющие положение левого верхнего угла компонента или формы. Свойства Caption и Name представляют собой строки и определяют заголовок и имя компонента или формы.



 
концентрические и эксцентрические переходы. имеется программ из них автоматических