Лекция 10СвСоб

advertisement
Лекция 10
11.0. Разработка приложения
Состоит из двух этапов:
- Создание интерфейса приложения,
- Определение функциональности приложения.
Интерфейс приложения определяет способ взаимодействия пользователя и
приложения, т.е. внешний вид формы при выполнении приложения и то, каким способом
пользователь управляет приложением.
Для создания интерфейса необходимо:
- выбрать нужные компоненты на палитре Компонентов;
- определить внешний вид и функциональные возможности компонентов;
- используя, Конструктор Формы, расположить компоненты на форме.
Функциональность приложения определяется процедурами (действиями), которые
выполняются при возникновении определенных событий, происходящих при действиях
пользователя с элементами формы.
Для обеспечения функциональности приложения необходимо:
- задать в Инспекторе Объектов значения свойств и процедур обработки событий;
- написать программный код для заданных процедур обработки событий.
11.1. Простейшее приложение
Представляет собой заготовку, обеспечивающую все необходимое для приложения.
Это форма, для которой уже созданы два файла с описанием и модулем.
Форма содержит основные элементы окна Windows:
заголовок Form1, кнопки минимизации, максимизации и закрытия окна, изменения
размеров окна и кнопку вызова системного меню.
Эта форма отображается при первом запуске Delphi.
При создании приложений на форму помещаются компоненты, для которых
устанавливаются свойства и создаются обработчики событий.
К простейшему приложению разработчик может добавлять другие формы (Form2,
Form3,…). Пример графического представления двух функций: Sin(x) и Cos(x).
Form1
Form2
11.2. Создание интерфейса приложения
Интерфейс приложения составляют компоненты.
К визуальным компонентам относятся кнопки, списки, переключатели, надписи,
редакторы, панели, полосы прокрутки.
Не визуальные (логические) – выполняют вспомогательные действия: секундомер,
таблицы данных, отчеты.
Для установки на форме нескольких одинаковых компонент необходимо:
1.
Нажать и удерживать клавишу <Shift>.
2.
Выбрать на Палитре компонентов щелчком мыши нужный компонент.
3.
Щелкать мышью в те места на Форме, где должны быть расположены эти
компоненты.
Отменяется выбор данного компонента щелчком мыши на изображении стрелки в
левом краю Палитры компонентов или выбором другого компонента.
Выделение нескольких компонент на форме выполняется с помощью
мыши при нажатой клавиши <Shift>.
Редактирование компонент – можно произвести с помощью контекстного меню или
команд меню Edit (Правка).
На форме можно изменять положение и размеры компонент с помощью мыши.
Кроме того, для нескольких компонентов можно выполнять выравнивание или
перевод того или иного компонента на передний или на задний план.
По умолчанию компоненты выравниваются на форме по линиям сетки. По
умолчанию шаг сетки равен восьми пикселям, а сетка при проектировании отображается
на поверхности формы в виде точек.
11.3. Свойства компонент
Свойства компонента это атрибуты, определяющие способ отображения и
функционирования компонент.
Для изменения значения свойств с помощью ИО необходимо:
- щелкнуть мышью по его имени в левой колонке страницы Свойство;
- открыть список, появившийся в соответствующей ячейке правой колонки:
- выбрать нужное свойство / или ввести его значение с клавиатуры.
Утверждается свойство клавишей <Enter>,
отменяется изменение свойства клавишей <Esc>.
Типы свойств:
- простые – это те, значения которых являются числами или строками. Например,
Caption, Name, Left, Top, Width, Height;
- перечисляемые – это те, которые могут принимать значения из предложенного
набора (списка). Например, тип Boolean принимает значение True или False;
- вложенные – это те, которые поддерживают вложенные значения (или объекты).
Имеются два вида свойств множества (…) и комбинированные значения ( + ).
Например, Font.
Редакторы для установки значения свойств:
Тип редактора
Простой
(текстовый)
Список выбора
Список
объектов
Множество
Цвет
Шрифт
Как использовать
Задать значение непосредственно в поле.
Выбирается значение из списка
Выбирается объект из списка.
Выполнить двойной щелчок по знаку "+" и
выбрать значение множества …
Выбрать цвет в открывающемся списке
или в диалоговом окне.
Назначить параметры шрифта в списке
свойств или в диалоговом окне
При выполнении приложения свойства компонентов можно изменять с помощью
операторов присваивания.
Например,
 изменение надписи кнопки Button1:
Button1.Caption:= ' Закрыть ';
 изменение размеров многострочного редактора Memo1:
Memo1.Height:=100;
Memo1.Width:=150;
11.4. Определение функциональности приложения
Событие – это то, что происходит во время работы программы. В Delphi каждому
событию присваивается имя.
События
Реакция окна на разного рода действия пользователя определяет функциональность
приложения.
Обработчик событий – определяет действие, которое можно поручить выделенному
компоненту. Каждый компонент имеет стандартные обработчики событий.
Чтобы при нажатии по кнопке "Закрыть" кнопка реагировала на событие закрыть,
необходимо создать процедуру обработки события, которая будет вызываться при
возникновении данного события (например, OnClick).
Для создания процедуры обработки события нужно:
1) выделить на форме компонент;
2) перейти на страницу событий Инспектора Объектов;
3) сделать двойной щелчок в области значения события, например OnClick, ( Delphi
автоматически создаст в модуле формы заготовку процедуры-обработчика).
4) в месте, где установится курсор написать код, который будет выполняться при
нажатии кнопки Button1., т.е набрать строку Form1.Close;
begin
Form1.Close;
end;
Все остальное Delphi создает автоматически.
При изменении имени кнопки с помощью Инспектора Объектов происходит
автоматически переименование этой процедуры во всех файлах (DFM и PAS) проекта.
Для удаления процедуры-обработчика достаточно удалить код, который
программист вносил в нее самостоятельно. После этого при сохранении или
компиляции модуля обработчик будет удален автоматически из всех файлов проекта.
Процедура, связанная с несколькими событиями для различных компонент
называется общим обработчиком и вызывается при возникновении любого из
связанных с ней событий.
Заголовок процедуры объявляется в разделе type, а в разделе implementation
заготовка для процедуры
обработчика события.
Например,
procedure TForm1.Button1Click(Sender: TObject);
begin
Тело
процедуры
end;
procedure TForm1.Button1Click(Sender: TObject);
Служебное слово Имя класса Имя процедуры Параметр вызова
Слово procedure - извещает компилятор о начале подпрограммы-процедуры,
TForm1.Button1Click – составное имя процедуры,
TForm1- имя класса TForm,
Button1Click – собственно имя процедуры,
Sender – параметр принадлежащий классу TObject.
Классом называется функционально законченные фрагменты программ, служащие
образцом для создания подобных себе экземпляров.
Каждый компонент принадлежит к строго определенному классу.
Например,
компонент Form1 принадлежит классу TForm.
Строка
TForm1 = class( TForm )
определяет новый класс TForm1, который порожден от стандартного класса TForm.
Строка
Form1 : TForm1
создает экземпляр этого класса с именем TForm1.
Класс TForm описывает пустое Windows-окно,
Класс TForm1 описывает окно со вставленными в него компонентами: кнопками,
метками, меню, панелями и д.т.
Описание этих компонент содержат строки
Button1: TButton;
Label1 : TLabel;
……..
Тело процедуры содержит строки:
begin . . .
end;
При нажатии кнопки Button1 управление будет передаваться в тело процедуры, а
значит между словами begin и end можно написать код, который будет выполняться в
ответ на это событие. Совокупность созданных обработчиков событий будет
характеризовать функциональность данного приложения.
12. Отладка
Тестирование – процесс проверки работоспособности программы, в процессе
которой выявляются разного рода ошибки.
Процесс поиска и устранения ошибок называется отладкой.
Классификация ошибок
Программ без ошибок не бывает. Ошибки допускает любой программист: и
начинающий, и имеющий тридцатилетний опыт. Компилятор генерирует исполняемую
программу лишь в том случае, если исходный текст не содержит синтаксических
ошибок.
В процессе выполнения программы возникают ошибки следующих видов:
 Синтаксические (ошибки времени компиляции),
 Логические (алгоритмические),
 Динамические (ошибки времени выполнения) – исключительные ситуации.
Синтаксические ошибки возникают при нарушении синтаксиса языка. Они
выявляются и устраняются при компиляции программы. Сообщения о найденных
ошибках отображаются в нижней части редактора кода на английском языке в
небольшом окне. Например,
[Ошибка] Unit1.pas(29): Unterminated string
При обнаружении в программе неточностей, которые не являются ошибками,
компилятор выводит подсказки и предупреждения. Например,
Variable …is declared but never used in …
Логические ошибки являются следствием реализации неправильного алгоритма и
проявляются при выполнении программы. Сообщения компилятором не выдаются, но
программа работает не корректно и выдаёт не правильные результаты.
Например, два выражения y:=ln(x)/x+5 и y:=ln(x)/(x+5) дадут разные результаты.
Динамические ошибки возникают при выполнении программы и являются
следствием неправильной работы операторов, подпрограмм, методов программы и
операционной системы.
Исключительная ситуация (exception) представляет собой нарушение условий
выполнения программы, вызывающее прерывание или полное прекращение ее работы.
Среда разработки прерывает работу, появляется слово Stopped (Запущено) в
заголовке окна Delphi и ДО с сообщением об ошибки и информацией, о типе ошибки.
Например, если пользователь в компонент Edit1
введет точку в качестве разделителя между целой и
дробной частями числа, то при выполнении кода
a:=strToFloat(Edit1.Text);
из среды Windows (файл – *.exe) появится окно ошибки.
При выполнении этого же кода из среды Delphi
появится окно c
сообщением об
ошибке и ее типе.
После нажатия кнопки ОК можно продолжить выполнение программы или прервать
ее выполнение.
Обработка исключительной ситуации состоит в нейтрализации динамической
ошибки, вызвавшей ее.
Причины возникновения исключительных ситуаций:
 нехватка памяти, ввод неверных данных,
 ошибки преобразования при выполнении вычислений.
При возникновении ошибки программист может:
1. прервать программу командой Run/ Program Reset (Запуск/Сброс программы)
<Ctrl+F2>;
2. продолжить ее выполнение в пошаговом режиме командой Run/Step
(Запуск/Трассировка).
3. создать точку прерывания щелчком мыши на синем маркере в редакторе кода.
При этом строка выделяется красным цветом, и выполнение программы происходит до
этой точки, а затем управление передается в Delphi.
Точки прерывания можно ставить не в любой строке исходного текста, а только там,
где выполняются какие-то действия. Такие строки помечены на левом поле в редакторе
синими круглыми маркерами, которые появляются после успешно выполненной компиляции.
При повторном запуске программы строка с точкой прерывания помечается
зеленной стрелкой на левом поле. В заголовке главного окна появится сообщение
Project1 [Stopped] (выполнение проекта Project1 остановлено).
Выполнение проекта можно продолжить по шагам:
 командой Run/Trace into (Запуск/Трассировка) <F7>
 командой Run/Step Over (Запуск/Пропуск блока) <F8>
При очередном шаге следующий оператор подсвечивается голубым цветом и
помечается зеленной стрелкой. При наведении на строку указателя мыши, появится
всплывающее окно подсказки.
Для пропуска группы операторов (в цикле) используется команда Run/Run to Cursor
(Запуск / Выполнение до курсора) <F4>. Курсор устанавливается в нужное место,
снимается прерывание повторным щелчком мыши по точке, и нажимается клавиша <F4>.
Запускается проект командой Run (Запуск) <F9>.
Download