- •Глава 4. Компоненты 30
- •Глава 5. Основы программирования 37
- •Часть I. Delphi и работа в Интегрированной Среде
- •Глава 1. Объектно-ориентированное программирование
- •1.1. Основные понятия и определения
- •1.2. Визуальное программирование интерфейса
- •1.3. Общие вопросы построения программ
- •Глава 2. Проекты Delphi
- •2.1.Файлы проекта
- •2.2.Структура файла головной программы
- •2.3. Окно Интегрированной Среды Разработки Delphi
- •2.4. Панель главного меню и всплывающие меню
- •2.5. Форма и компоненты
- •2.5.1.Окно формы
- •2.5.2. Окно Редактора Кода
- •2.5.3. Инспектор Объектов
- •2.6. Структура модуля приложения
- •Глава 3. Элементы языка Delphi
- •3.1.Типы данных
- •3.1.1. Целый тип
- •3.1.2.Вещественный тип
- •3.1.3. Символьный тип
- •3.1.4. Строковый тип
- •3.1.5. Логический тип
- •3.2. Переменная
- •3.3. Константы
- •3.3.1.Числовые константы
- •3.3.2. Строковые и символьные константы
- •3.3.3. Логические и именованные константы
- •3.4. Инструкция присваивания
- •3.5. Стандартные функции
- •3.5.1.Математические функции
- •Глава 4. Компоненты
- •4.1. Форма и компоненты на форме
- •4.2. Событие и процедура обработки событий
- •Глава 5. Основы программирования
- •5.1. Сохранение проекта, его повторное открывание
- •5.2. Стиль программирования
- •5.3. Порядок разработки проекта
- •5.4. Управляющие структуры языка Delphi
- •5.4.1. Инструкция if
- •5.4.2. Инструкция case
- •5.5. Циклы
- •5.5.1. Инструкция for
- •5.5.2. Инструкция while
- •5.5.3. Инструкция repeat
- •5.5.4. Инструкция goto
- •5.6. Процедуры и функции
- •5.6.1. Структура функции
- •5.6.2. Структура процедуры
- •5.6.3. Ввод и вывод данных в диалоговых окнах
- •5.6.4. Запись инструкций программы
- •5.6.5. Отладка программы
- •5.7. Операции со строками
- •5.7.1. Стандартные функции и процедуры работы со строками
- •5.7.2. Использование операций со строками
- •5.8. Массивы
- •5.8.1. Объявление массива
- •5.8.2. Операции с массивами
- •5.8.3. Стандартные функции обработки массивов
- •5.8.4. Многомерные массивы
4.2. Событие и процедура обработки событий
Вид созданной формы подсказывает, как работает программа. Очевидно, что пользователь должен ввести в поля редактирования исходные данные и сделать щелчок на кнопке Стоимость. Щелчок на изображении командной кнопки – это пример того, что называется событием.
Событие (Event) – это то, что происходит во время работы программы. У каждого события есть имя. Например, щелчок кнопкой мыши – это событие Click, двойной щелчок мышью – событие DblClick. Следует понимать, что одни и те же, но выполненные над разными объектами, действия пользователя, вызывают разные события. Например, щелчок (событие click) на кнопке Расчёт и щелчок на кнопке Завершить – это два разных события.
Реакцией на событие должно быть какое-либо действие. В Delphi реакция на событие реализуется как процедура обработки события. Таким образом, для того чтобы программа выполняла некоторую работу в ответ на действия пользователя, программист должен написать процедуру обработки соответствующего события.
Методику создания процедуры обработки события рассмотрим на примерее обработки события click, которое возникает в результате щелчка на кнопке Стоимость. Для создания процедуры обработки события надо выполнить подготовительные действия:
• выбрать компонент, для которого создается процедура обработки события. Компонент можно выбрать щелчком на его изображении на форме или в раскрывающемся списке окна Object Inspector;
• затем в окне Object Inspector нужно открыть вкладку Events (События). В левой колонке вкладки Events перечислены события, которые может воспринимать выбранный компонент. Строго говоря, на вкладке Events указаны не события, а свойства, значением которых являются имена процедур обработки событий. Так, например, значением свойства onclick является имя процедуры обработки события click. Дальнейшие действия можно выполнить разными способами, приводящими к одному результату – переход в Редактор кода, в котором будет создан каркас будущей процедуры обработки события.
Первый способ. Для создания процедуры обработки события, нужно на вкладке Events выбрать событие (сделать щелчок мышью на имени события), ввести в ставшее доступным поле редактирования имя процедуры обработки события и нажать клавишу <Enter>. В результате этих действий в тексте программы (в модуле формы) будет объявлена процедура обработки события и станет доступным окно Редактора кода, в котором можно набирать инструкции процедуры обработки события.
Второй способ. Сначала нужно раскрыть вкладку Events и выбрать событие, процедуру обработки которого надо создать. Затем сделать двойной щелчок левой кнопкой мыши в поле редактирования, которое находится справа от имени события. В результате имя процедуры обработки события сформирует Delphi. Стандартное имя процедуры обработки события образуется путем объединения имени компонента, для которого создается процедура обработки события, и имени события, например,Button1Click.
Полное имя процедуры обработки события состоит из двух частей. Первая часть идентифицирует форму, вторая – компонент (объект) и событие.
В примере вычисления стоимости покупки объявление процедуры (формирует Delphi) имеет вид:
procedure Button1Click(Sender: TObject);
В разделе реализации модуля описание процедуры:
// щелчок на кнопке Стоимость
procedure TForm1.Button1Click(Sender: TObject);
begin
Summa(Edit3); // вычислить сумму покупки
end;
В табл. 4.6 приведены некоторые события, возникающие в результате действий пользователя [3].
Таблица 4.6
События
Событие |
Происходит |
Click |
При щелчке кнопкой мыши |
DblClick |
При двойном щелчке кнопкой мыши |
MouseDown |
При нажатии кнопки мыши |
MouseUp |
При отпускании кнопки мыши |
MouseMove |
При перемещении мыши |
KeyPress |
При нажатии клавиши клавиатуры |
KeyDown |
При нажатии клавиши клавиатуры. События KeyDown и KeyPress — это чередующиеся, повторяющиеся события, которые происходят до тех пор, пока не будет отпущена удерживаемая клавиша (в этот момент происходит событие KeyUp) |
KeyUp |
При отпускании нажатой клавиши клавиатуры |
Create |
При создании объекта (формы, элемента управления). Процедура обработки этого события обычно используется для инициализации переменных, выполнения подготовительных действий |
Продолжение табл. 4.6
Enter |
При получении элементом управления фокуса |
Exit |
При потере элементом управления фокуса |