Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_информатика4.doc
Скачиваний:
59
Добавлен:
07.02.2015
Размер:
13.31 Mб
Скачать

Лабораторная работа 14 Изучение обработчиков событий компонентов библиотеки vcl

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

Теория

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

Событие (Event) — это то, что происходит во время работы программы. В C++ Builder каждому событию присвоено имя. В таблице приведены некоторые события Windows.

Событие

Происходит

OnClick

При щелчке кнопкой мыши

OnDb1Click

При двойном щелчке кнопкой мыши

OnMouseDown

При нажатии кнопки мыши

OnMouseUp

При отпускании кнопки мыши

OnMouseMove

При перемещении мыши

OnKeyPress

При нажатии клавиши клавиатуры

OnKeyDown

При нажатии клавиши клавиатуры. События OnKeyDown и OnKeyPress – это чередующиеся, повторяющиеся события, которые происходят до тех пор, пока не будет отпущена удерживаемая клавиша (в этот момент происходит событие OnKeyUp)

OnKeyUp

При отпускании нажатой клавиши клавиатуры

OnCreate

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

OnPaint

При появлении окна на экране в начале работы программы; во время работы программы после появления окна (или его части), которое было закрыто другим окном или свернуто

OnEnter

При получении элементом управления фокуса

OnExit

При потере элементом управления фокуса

Например, щелчок кнопкой мыши — это событие Onclick, двойной щелчок мышью — событие OnDb1Click.

Реакцией на событие должно быть какое-либо действие. В C++ Builder реакция на событие реализуется как функция обработки события. Таким образом, для того чтобы программа выполняла некоторую работу в ответ на действия пользователя, программист должен написать функцию обработки соответствующего события. Следует обратить внимание на то, что значительную часть обработки событий берет на себя компонент. Поэтому программист должен разрабатывать функцию обработки события только в том случае, если реакция на событие отличается от стандартной или не определена. Например, если по условию задачи ограничений на символы, вводимые в поле Edit, нет, то процедуру обработки события onKeyPress писать не надо, т. к. во время работы программы будет использована стандартная (скрытая от программиста) процедура обработки этого события.

Страница событий (Events) инспектора объектов показывает список событий, распознаваемых компонентом (программирование для операционных систем с графическим пользовательским интерфейсом, в частности, Windows NT предполагает описание реакции приложения на те или иные события, а сама операционная система занимается постоянным опросом компьютера с целью выявления наступления какого-либо события). Каждый компонент имеет свой собственный набор обработчиков событий. В C++ Builder следует писать функции, называемые обработчиками событий, и связывать события с этими функциями. Создавая обработчик того или иного события, вы поручаете программе выполнить написанную функцию, если это событие произойдет.

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

Рис. 11

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

Задание

Упражнение 1

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

Упражнение 2

Создайте приложение, добавьте на форму компонент Edit, используя события OnMouseDown и OnMouseUp, сделайте так, чтобы текст изменялся при кликах левой и правой кнопками мыши.

Упражнение 3

Создайте приложение, добавьте на форму компоненты: Edit, Label, Button компоненты, используя событие OnClick для компонента Button, сделайте так, чтобы текст введенный в Edit появлялся в Label.

Упражнение 4

Создайте приложение, добавьте на форму компонент: Button используя событие OnMouseMove, сделайте так, чтобы на кнопку было невозможно нажать мышкой, т.е. при наведении мышкой кнопка перемещалась по форме.