- •В телекоммуникациях ” Преподаватель: доцент кафедры прикладной математики и кибернетики
- •Цель курса– ознакомление с общими принципами визуального программирования на примере системы Delphi.
- •Пример оформления контрольной работы. Вариант 12
- •1.1Структура программы 7
- •Рабочая программа курса
- •Основные конструкции языка Паскаль
- •Структура программы
- •Операторы языка Паскаль
- •Процедуры и функции
- •Объектно-ориентированная методология
- •Различные технологии программирования
- •Принципы объектно-ориентированного программирования
- •Модули и классы
- •Знакомство со средой программирования Delphi
- •Структура среды программирования
- •Проект Delphi
- •Главное меню среды
- •Первое приложение на Delphi
- •Контрольные вопросы
- •Библиотека визуальных компонентов (vcl)
- •Иерархия базовых классов vcl
- •Типы свойств компонентов. Изменение свойств
- •Некоторые общие свойства компонентов
- •События в Delphi
- •Некоторые общие события компонентов
- •Контрольные вопросы
- •Класс tForm
- •Роль формы в приложении
- •Свойства класса tForm
- •События формы
- •Пример использования событий формы
- •Контрольные вопросы
- •Графические возможности визуальных компонентов
- •Свойства класса tCanvas
- •Методы класса tCanvas
- •Примеры использования свойств и методов класса tCanvas
- •Использование визуальных компонентов
- •Редактируемые компоненты
- •Списки выбора
- •Диалоговые компоненты
- •Переключатели
- •Контрольные вопросы
- •Лабораторная работа 1
- •Лабораторная работа 2
- •Лабораторная работа 3
- •Лабораторная работа 4
- •Лабораторная работа 5
- •Контрольная работа правила выполнения и оформления контрольной работы
- •Правила получения зачета
- •Литература
Некоторые общие события компонентов
Для большинства видимых визуальных компонентов, т.е. потомков класса TControl, определен набор обработчиков событий, связанных с мышью. Для выполнения какого-либо действия с помощью щелчка левой кнопки мыши для большинства случаев достаточно запрограммировать обработчик событий OnClick, а для реакции на двойной щелчок используется событие OnDbClick. Для более совершенного управления мышью лучше использовать обработчики следующих событий:
OnMouseDown. Событие вызывается при нажатии любой кнопки мыши.
OnMouseMove. Событие вызывается при перемещении курсора мыши.
OnMouseUp. Событие вызывается при отпускании любой кнопки мыши.
Процедуры обработки этих событий получают следующие параметры:
Sender. Параметр представляет объект, который получил это событие (т. е. на каком компоненте щелкнули мышью).
Button. Параметр имеет одно из трех значений: mbRight, mbLeft, mbMiddle и используется для определения кнопки мыши, которую нажал пользователь.
Shift. Множество, которое может содержать следующие элементы: ssShift, ssCtrl, ssAlt, ssLeft, ssRight, ssMiddle, ssDouble. Используется для определения нажатия клавиш <Ctrl>, <Alt>, <Shift> (или комбинации этих клавиш) в момент щелчка мышью, а также для определения какой кнопкой мыши щелкнул пользователь.
X, Y. Координаты указателя мыши в пикселях относительно клиентской области окна с координатами (0,0) в верхнем левом углу.
Необходимо отметить, что событие OnClick возникает после события OnMouseDown, но перед событием OnMouseUp. Событие OnDbClick генерируется после события OnMouseUp.
Р
Рисунок
5
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
If (Button=mbRight)
then Caption:=IntToStr(X)+’, ’+IntToStr(Y);
end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Caption:='';
end;
Визуальные компоненты, которые являются потомками класса TWinControl, кроме обработчиков событий, связанных с мышью, также обладают набором обработчиков событий от клавиатуры.
OnKeyDown Событие возникает при нажатии любой клавиши клавиатуры.
OnKeyUp Событие возникает при отпускании клавиши клавиатуры
OnKeyPress Данное событие генерирует после OnKeyDown, но перед OnKeyUp
Процедуры обработки событий OnKeyDown и OnKeyUp получают следующие параметры:
Sender. Параметр представляет объект, который получил это событие (т. е. какой компонент в данный момент имеет фокус ввода).
Key. Параметр целого типа содержит виртуальный код клавиши, т.е. специальной константы, которая определена для каждой клавиши клавиатуры. Для буквенно-цифровых клавиш виртуальный код совпадает с кодом символа.
Shift. Множество, которое может содержать следующие элементы: ssShift, ssCtrl, ssAlt, ssLeft, ssRight, ssMiddle, ssDouble. Используется для определения нажатия клавиш <Ctrl>, <Alt>, <Shift> (или комбинации этих клавиш), а также для определения какой кнопкой мыши щелкнул пользователь.
Для процедуры обработки события OnKeyPress имеется такой набор параметров.
Sender. Параметр представляет объект, который получил это событие (т. е. какой компонент в данный момент имеет фокус ввода).
Key. Параметр символьного типа содержит символ, который получается в результате нажатия клавиш клавиатуры.
Таким образом, события OnKeyDown и OnKeyUp перехватывают нажатия большинства клавиш клавиатуры, в то время как событие OnKeyPress позволяет обрабатывать только нажатие буквенно-цифровых клавиш. При этом получаемый символ Key учитывает выбранный язык (раскладку клавиатуры) и нажатую клавишу Shift.
Для потомков класса TWinControl определены события OnEnter и OnExit, которые возникают в момент получения (потери) компонентом фокуса ввода.
Рассмотрим следующий пример использования событий, связанных с клавиатурой. При нажатии комбинации клавиш Shift+А в заголовке формы пишется ‘Ok’. Этого эффекта можно достигнуть двумя способами. Первый способ состоит в создании следующего обработчика
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If (Shift=[ssShift]) and (Key=Ord(‘A’)) then Caption:=’Ok’;
end;
Другой способ заключается в использовании события OnKeyPress.
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
If key='A' then Caption:='Оk';
end;
Однако необходимо заметить, что этот обработчик будет срабатывать только, если выбран английский язык и отключена клавиша Caps Lock, поскольку только в этом случае возможно получить символ А путем нажатия комбинации Shift+А.