Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭКЗАМЕН АИС.DOC
Скачиваний:
13
Добавлен:
05.12.2018
Размер:
424.45 Кб
Скачать

Обработка событий мыши

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

OnClick

 

Щелчок мыши на компоненте и некоторые другие действия пользователя

OnDblClick

 

Двойной щелчок мыши на компоненте.

 

OnMouseDown

 

Нажатие клавиши мыши над компонентом. Возмож­но распознавание нажатой кнопки и координат кур­сора мыши.

 

OnMouseMove

 

Перемещении курсора мыши над компонентом. Воз­можно распознавание нажатой кнопки и координат курсора мыши.

 

OnMouseUp

 

Отпускание ранее нажатой кнопки мыши над ком­понентом. Возможно распознавание нажатой кнопки и координат курсора мыши.

 

OnEnter

 

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

 

OnExit

 

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

 

 

Наиболее широко используется событие OnClick. Обычно оно наступает, если пользователь щелкнул на компоненте, т.е. нажал и отпустил кнопку мыши, когда указатель мыши нахо­дился на компоненте.

Для формы событие OnClick наступает, если пользователь щелкнул на пустом месте формы или на недоступном компонен­те.

 События OnMouseMove происходят постоянно в процессе пе­ремещения курсора мыши и даже просто при его дрожании, не­избежном, если пользователь не снимает руки с мыши. Это надо учитывать, и пользоваться этим событием очень осторожно, по­скольку оно, в отличие от других, происходит многократно.

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

Если щелчок делается на объекте, который уже находится в этот момент в фокусе, то не происходят события OnExit и OnEnter. В этом случае при нажа­тии кнопки наступает только событие OnMouseDown, а при отпу­скании кнопки — события OnClick и OnMouseUp.

Распозна­вать нажатую кнопку мыши по-прежнему можно только в собы­тиях OnMouseDown и OnMouseUp. Если же надо распознать именно двойной щелчок какой-то определенной кнопкой мыши, то можно, например, ввести некую переменную, являющуюся флагом двойного щелчка, устанавливать этот флаг в обработчике события OnDblClick, а в обработчиках событий OnMouseDown или OnMouseUp проверять этот флаг и, если он установлен, то сбрасывать его и выполнять запланированные действия

32.Обработка исключительных ситуаций. Обработка событий клавиатуры.

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

Для обработки исключений в блоке кода PL/SQL должен присутствовать раздел «exception». В этом разделе перечисляются исключительные ситуации и описывается их обработка.

Инициализация обработчика исключений происходит в результате появления ошибки в процессе выполнения программы или в случае, когда пользователь сам (вручную) вызвал обработчик ошибок конструкцией «RAISE_APPLICATION_ERROR». Обработчик ошибок по структуре похож на оператор CASE, но в отличии от него не возвращает управление тому блоку откуда он был инициирован.

Пример:

EXCEPTION

WHEN utl_smtp.transient_error OR utl_smtp.permanent_error THEN

utl_smtp.quit(smtp_conn);

WHEN others THEN

Null;

Если надо обработать «любую» ошибку в условии «when» задается ключевое слово «others».

Если обработчик исключений не нашел описание исключения в текущем блоке, он начинает искать обработчик исключений во внешнем (родительском) блоке.

События клавиатуры.

В оконных компонентах Delphi определены три события, связанные с клавиатурой:

Событие

Описание

onKeyDown

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

onKeyPress

Событие наступает при нажатии пользователем клавиши символа. Можно распознать только нажатую клавишу символа, различить символ в верхнем и нижнем регистре, различить символы кириллицы и латинские, но нельзя распознать функциональные клавиши и кнопки.

onKeyUp

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

Кроме того, при нажатии пользователем клавиши табуляции фокус может переключаться с элемента на элемент, что вызывает события onEnter и onExit.

Распознавание нажатых клавиш.

Заголовок обработчика событий может иметь следующий вид:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;  Shift: TShiftState);

Параметр Sender типа TОbject содержит указатель на компонент, в котором произошло событие. Он не требуется, если пишется обработчик события для одного конкретного компонента.

Параметр Key определен как var, т.е. может изменяться в обработчике события. Это целое число, а не символ. Key определяет нажатую в момент события клавишу клавиатуры.

Параметр Key является целым числом. Определяющим клавишу, а не символ.

Для клавиш символов и цифр можно воспользоваться функцией ord , определяющей код символа. Коды латинских символов в верхнем регистре совпадают с виртуальными кодами, используемыми в параметре Key

Параметр Key определяет нажатую клавишу символа, имеет тип char. В данном случае в обработчик передается не виртуальный код клавиши, а символ, по которому моно определить, прописная это буква, или строчная, русская или латинская.

Параметр Key передается как var. Это позволяет в обработчике события изменять этот параметр, изменяя соответственно его стандартную обработку в компоненте.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]