Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Указания к выполнению работы




Технология разработки программного

Обеспечения в среде Delphi

 

Учебно-методическое пособие

К лабораторным работам по курсу

«Технологии программирования»

 

Новочеркасск 2008

УДК 681.3.06

 

Рецензент – канд. техн. наук, доц. Д.В. Гринченков

 

 


Мохов В.А.

 

Технология разработки программного обеспечения в среде Delphi: учебно-методическое пособие к лабораторным работам по курсу «Технологии программирования» / В.А. Мохов; Юж.– Рос. гос. техн. ун-т. – Новочеркасск: ЮРГТУ, 2008. – 54 с.

 

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

Методические указания предназначены для студентов, обучающихся по специальности 23010165(220100) – «Вычислительные машины, комплексы, системы и сети» и по направлению подготовки бакалавров 654600 – «Информатика и вычислительная техника», а также могут использоваться преподавателями, слушателями ФПК и студентами других форм обучения специальности 23010165(220100) и направления 654600.

 

 

УДК 681.3.06

 

© Южно–Российский государственный

технический университет, 2008

© Мохов В.А., 2008

 

Лабораторная работа №1 (2 часа)

 




Организация проекта приложения

 

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

Оборудование: ПЭВМ IBM PC-AT.

Программные средства: ОС семейства Windows, среда Delphi 5.* (или выше).

 

Задание

 

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

 

Таблица 1.1

Цифра в зачетной книжке Цвет всплывающей подсказки Задержка перед выводом окна подсказки, с Интервал отображения подсказки, с Дополнительное условие
0 clRed 10 1 Корректное завершение
1 clGray 9 2 Запуск в свёрнутом виде
2 clFuchsia 8 3 Организация длительного цикла
3 clSkyBlue 7 4 Выполнение действий при простое
4 clNavy 6 5 Выдача сообщения при потере фокуса
5 clGreen 5 6 Выдача сообщения при получении фокуса
6 clYellow 4 7 Выполнение действий при простое
7 clBlue 3 8 Организация длительного цикла
8 clAqua 2 9 Запуск в свёрнутом виде
9 clSilver 1 10 Выдача сообщения при получении фокуса

 

Программа работы

 

1. Изучить состав файлов проекта.

2. Ознакомиться с основными свойствами, методами, событиями и приёмами работы с объектом Application.

3. Написать код программы в соответствии с заданием.

4. Выявить и исправить ошибки.

5. Расставить по тексту программы комментарии.

6. Откомпилировать исходный текст программы.

 

Пояснения к работе

 

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

  project1.dpr - главный файл проекта;
  unit1.pas - первый модуль приложения;
  unit1.dfm - файл описания внешнего вида формы первого модуля;
  project1.res - файл с ресурсами (иконки, изображения, курсоры и т.п.);
  project1.dof - файл опций (текстовый файл с установками для проекта);
  project1.cfg - файл конфигурации с информацией о состоянии среды.

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

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

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

  dcu - скомпилированные модули;
  exe - исполняемый файл;
  ~pa, ~dp - файлы отката (предыдущие версии).

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

Новый проект приложения в Delphi создаётся командой "File|New| Application", а загрузка существующего – "File|Open Project". Создав новый проект, рекомендуется сразу сохранить его в отдельной папке и в дальнейшем регулярно выполнять сохранение всех файлов проекта. При создании проекта Delphi генерирует пустую форму, текст модуля которой приведён ниже.

 

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.

 

Модуль начинается с зарезервированного слова unit,после которого указывается имя модуля, совпадающее с именем файла, в котором он сохранён. В интерфейсной секции описываются программные элементы, доступные другим модулям приложения, а всё, что помещается в секцию реализации implementation, доступно только в пределах модуля.

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

 

program Project1;

uses

Forms,

Unit1 in'Unit1.pas' {Form1};

{$R *. res}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

 

Просмотр файла проекта осуществляется с помощью команды "View|Unit" (или соответствующей кнопки на панели инструментов) с последующим выбором в диалоговом окне пункта Project1. По мере создания новых форм содержимое этого файла автоматически изменяется.

В разделе uses подключается системный модуль Forms и модуль формы Unit1 (название формы указывается в фигурных скобках). Директива компилятора {$R *.res} подключает ресурсы к получаемому exe-файлу. Тело программы содержит операторы с обращением к методам класса TApplication. Процедура Initialize инициализирует приложение. При этом выполняются операторы раздела инициализации всех модулей проекта. Процедура CreateForm создаёт форму. Владельцем созданной формы является объект Application. Обычно этот метод вызывается автоматически для всех форм приложения. Процедура Run запускает приложение на выполнение.

Класс TApplication описывает приложение в целом. При каждом запуске приложения система Delphi автоматически создает экземпляр Application класса TApplication (если приложение Delphi не является приложением Web-сервера, панели управления или службой Win32/Win64). По сути, объект Application является окном Windows – главной невидимой формой приложения. Свойства и методы объекта Application доступны только программно и предназначены для создания, исполнения, поддержки и закрытия приложения. TApplication позволяет:

- обработать сообщения Windows;

- организовать работу справочной системы;

- обработать клавиши и пункты меню;

- обработать ошибки;

- управлять основными классами, объявленными в ОС.

TApplication не отображается на панели компонентов и недоступен в режиме дизайна визуально. Однако некоторые его свойства могут быть заданы или изменены. Чтобы задать обработчики событий в приложении необходимо поместить на форму компонент TApplicationEvents. Также при желании вместо автоматического создания формы в приложении можно предусмотреть вызов метода CreateForm в процессе работы приложения. Для этого предварительно командой Project Optionsнадо открыть окно параметров проекта, перейти на вкладку Forms и перенести формы, которые должны создаваться по мере необходимости, из панели Auto-create forms в Available forms.

TApplication предоставляет ряд свойств, методов и событий, с помощью которых можно отслеживать состояние приложения и контролировать некоторые аспекты его поведения. Краткое описание некоторых из них приведено в табл. 1.2 ÷ 1.4.

                                                                                Таблица 1.2

Свойство Описание
Active Определяет активность приложения. Возвращает значение true, если приложение в текущий момент имеет фокус ввода. Свойство доступно только для чтения
EXEName Представляет собой строку, содержащую полный путь выполняемого файла. Используется для определения рабочего каталога приложения с помощью функций ExtractFilePath и ExtractFileName. Доступно только во время работы приложения и только для чтения
Hint Содержит текст всплывающей подсказки, который будет выведен при наступлении события OnHint
HintColor Задаёт цвет фона всплывающей подсказки
HintPause Задаёт задержку (в миллисекундах) перед выводом окна подсказки (по умолчанию – через 0,5 с после наведения указателя мыши на визуальный компонент)
HintHidePause Задаёт интервал (в миллисекундах), в течение которого видна подсказка (по умолчанию – 2,5 с)
HintShortPause Определяет задержку перед отображением подсказки, если активна подсказка другого компонента
Icon Позволяет изменить пиктограмму во время работы приложения
Title Определяет заголовок приложения
HelpFile Определяет имя справочного файла
Terminated Если значение свойства равно true, то приложение получило сообщение о закрытии

                                                                                    Таблица 1.3

Метод Описание
Minimize Заставляет приложение принять свернутый вид
Maximize Заставляет приложение принять развернутый вид
ProcessMessages Вынуждает приложение обработать имеющиеся сообщения. Рекомендуется включать в циклы длительной обработки данных
Terminate Корректно завершает работу приложения
HelpCommand Запускает файл winhelp.exe, передаёт ему команду и данные
HelpContext Вызывает конкретный раздел справочной службы
 

 

                                                                                         Таблица 1.4

Событие Описание
OnActivate, OnDeactivate Оповещают программу об изменении свойства Active (при получении/утере фокуса приложением)
OnException Вызывается при необработанной исключительной ситуации
OnHint Генерируется при перемещении указателя мыши над объектом
OnIdle Генерируется при простое приложения

 

Указания к выполнению работы

 

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

Откомпилируйте проект нажатием клавиши F9 и просмотрите ещё раз состав файлов проекта. Сравните его с изначальным.

В соответствии с выбранным заданием запрограммируйте цвет всплывающей подсказки, интервал задержки перед выводом её окна и интервал его отображения. Для этого задайте соответствующие свойства объекта Application.

После определения с преподавателем метода и события объекта Application запрограммируйте их обработку в создаваемом приложении. При необходимости расположите на форме кнопку из палитры компонентов и задайте реакцию на событие OnClick. Методы Minimize и Maximize заставляют приложение принять свернутый и развернутый вид. Подобный результат обеспечивает свойство WindowState объекта TForm. Однако использование методов Minimize и Maximize объекта Application позволяет выполнять операции более корректно. Вызов метода ProcessMessages вынуждает приложение обработать имеющиеся сообщения. Это полезно делать, например, в длинном цикле. Иначе при выполнении длительных операций приложение не реагирует на поступающие сообщения: бесполезно пытаться переместить окно, щёлкать по кнопкам, пунктам меню и т.п. Поэтому рекомендуется включать метод ProcessMessages в циклы длительной обработки данных, чтобы принудительно обработать все находящиеся в очереди сообщения. В частности, сообщения могут содержать сведения, влияющие на работу цикла. Для анализа таких сообщений надо после команды Application.ProcessMessages разместить операторы проверки условия прерывания цикла и операторы, осуществляющие выход из цикла. Длительный цикл в программе организуйте для выполнения простейших арифметических операций.

Метод Terminate позволяет корректно прекратить работу приложения. Метод Terminate вызывает функцию Windows APIPostQuitMessage, чтобы совершить запланированное закрытие приложения. Вызов этого метода приводит к освобождению памяти, занятой объектами, и завершению приложения. Причём, процедура Terminate не закрывает приложение немедленно, а дожидается обработчика события и завершения всех других процессов. Terminate вызывается автоматически на закрытие формы и на сообщение WM_QUIT. Вместо метода Terminate часто используется процедура Close главной формы.

Доступ к командам Windows Help API обеспечивает функция HelpCommand (Command: Word; Data: Longint): Boolean. Метод HelpCommand запускает файл winhelp.exe, передаёт ему команду, заданную параметром Command, и данные, определяемые параметром Data. В результате появляется соответствующее окно справочной системы Windows. Эта функция вызывается после задания в программе файла справки через свойство HelpFile. Функция HelpContext (Context: THelpContext): Boolean выводит окно справочной системы Windows и отображает экран, указанный параметром Context. Предварительно через свойство HelpFile необходимо задать имя файла справки.

События OnActivate и OnDeactivate оповещают программу об изменении свойства Active. Приложение становится активным сразу после запуска или когда на одно из его окон перевели фокус ввода. Приложение становится неактивным, когда из его окон фокус ввода перемещается на другое приложение.

Событие OnException вызывается при необработанной исключительной ситуации. Событие OnHint генерируется при перемещении указателя мыши над объектом – потомком TControl, если его свойство Hint не является пустой строкой.

Событие OnIdle генерируется при простое приложения. Обработчик события OnIdle используется для выполнения фоновых задач. Операции, включённые в этот обработчик, выполняются каждый раз, когда приложение заканчивает текущую работу и переходит в режим ожидания (например, ожидает ввода и не занято обработкой события). Код обработчика события OnIdle должен занимать мало памяти и выполняться быстро, чтобы не тормозить работу приложения. Событие OnIdle имеет тип TIdleEvent, описанный следующим образом:

 

type TIdleEvent=procedure(Sender:TObject;varDone:Boolean)of object;

 

Обработчик получает логический параметр Done, который определяет правила поведения приложения в режиме ожидания. Если Done равно true, то обработчик не запустится до тех пор, пока не будет получено и обработано очередное сообщение. Если параметру Done установить значение false, то обработчик запустится, как только приложение перейдёт в режим ожидания. По умолчанию Done имеет значение true. Так как в процессе функционирования обработчика приложение не реагирует на сообщения, то рекомендуется использовать короткий обработчик, либо включать в него процедуру ProcessMessages. Процедура обработки события OnIdle обычно описывается и используется в модуле главной формы приложения.

 

Контрольные вопросы и задания

 

1. В чём заключается особенность в задании свойств объекта Application?

2. Как на этапе проектирования можно задать некоторые параметры проекта?

3. Как создаются обработчики событий объекта Application?

4. В каких случаях целесообразно отказаться от автоматического создания форм в файле проекта?

5. Какое название отображается на панели задач при сворачивании приложения?

6. Можно ли сразу для всех элементов приложения отключить вывод всплывающих подсказок?

7. Если на главной форме и в свойстве Icon объекта Application указаны разные иконки, то какая из них будет отображена на панели задач?

8. Какие действия реализованы в методе ProcessMessages?

9. Какой метод можно применить вместо метода Terminate?

10. Когда генерируется событие OnIdle?

 

 










Последнее изменение этой страницы: 2018-05-27; просмотров: 172.

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