Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Очень хорошо по языку С. С++.DOC
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
931.33 Кб
Скачать

4.5. Программы, управление событиями, исключения.

Рассмотрим простейшую программу - вывод строки по нажатию кнопки. Создадим новый проект или воспользуемся пустым проектом, который предоставляется С++ Builder в момент его запуска.

На пустую форму положим два компонента: строку редактирования Edit и кнопку Button.

Для этого щелкнем мышью на пиктограмме требуемого элемента в палитре, а затем поставим его в нужное место формы.

Далее щелкнем на свойстве Text компоненты Edit и удалим текст, присвоенный строке системой.

Изменим свойство Caption кнопки Button, введя текст "Нажми". Форма готова. Осталось написать исходный текст для обработки нажатия кнопки. Для этого надо выделить кнопку Button, переключить окно инспектора объекта в режим создания обработчиков событий и дважды щелкнуть на событии OnClick.

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

Edit1-> Text = "Привет от Borland C++!";

После этого командой Run-Run начать компиляцию и выполнение программы.

Нажмем кнопку "Нажми", и программа поприветствует нас. В отличии от DOS, в которой программа получает управление при запуске, и выполняется от начала до конца, в Windows 95 программа управляется событиями. При управлении событиями программа не делает ничего до тех пор, пока не происходит событие - нажатие клавиши мыши, нажатие клавиши клавиатуры и т.д.

Существуют различные виды событий и их обработка. На примерах рассмотрим некоторые из них.

1.Обработчик, откликающийся на событие.

Рассмотрим пример - обработка нажатия клавиши мыши и вывод координат курсора мыши.

1.Запускаем C++ Builder.

2.В инспекторе объектов выбираем страницу Events.

3.Справа от метки события OnMouseDown (нажатие клавиши мыши) дважды щелкаем мышью.

4.Появляется программный код процедуры - обработчика событий.

5.Вводим код.

Form1->Canvas->TextOut(X,Y,"Координата "+IntToStr(X)+

","+ IntToStr(Y));

6. Запускаем программу на выполнение.

При нажатии клавиши мыши активизируется обработчик событий OnMouseDown,которому передаются параметры - координаты X и Y.

Таким образом в данном случаее мы рассмотрели вариант, когда обработчику событий передана некоторая информация - параметры X и Y.

2.Обрабочик событий, передающий информацию, вызываемой про-

цедуре.

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

1.Запускаем C++ Builder.

2.Выводим на форму из палитры компонент элемент Edit.

3.В разделе инспектора объектов Events вправо от OnKeyPress два раза щелкаем мышью, получаем фрагмент кода.

4.Набираем код.

Key= AnsiUpperCase(Key)[1];

5.Запускаем на выполнение. Любая введеная буква печатается как заглавная.

В данном примере переменная Key, содержащая значение нажатой клавиши указана как указатель на адрес символа - в этом случае любые изменения, сделанные в переменной передаются обратно в вызывающую функцию. Функция AnsiUpperCase(Key) преобразует символ в заглавный.

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

Исключения. Для обработки исключений(ошибок) в C++ Builder имеются специальные средства. В частности, при возникновении ошибки возможна передача управления блоку, который ориентирован на обработку этой ошибки. Для этой цели используется блок try ... except() следующего формата:

try {

исполняемый код

}

except (проверяемая пеpеменная)

{

код, исполняемый при ошибке

}