КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Распознавание нажатых клавиш
События клавиатуры
В оконных компонентах Delphi определены три события, связанные с клавиатурой:
Кроме того, при нажатии пользователем клавиши табуляции фокус может переключаться с элемента на элемент, что вызывает события onEnter и onExi t. Последовательность событий клавиатуры при нажатии клавиш Shift-н:
Заголовок обработчика событий может иметь следующий вид: procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); Параметр Sender типа TОbject содержит указатель на компонент, в котором произошло событие. Он не требуется, если пишется обработчик события для одного конкретного компонента. Параметр Shift представляет собой множествоэлементов, отражающих нажатые в это время функциональные клавиши. Только в OnKeyDown множество нажатых множество возможных элементов параметра Shift сокращено до ssShift, ssAlt, ssCtrl. Информация о нажатых клавишах мыши отсутствует. Параметр Key определен как var, т.е. может изменяться в обработчике события. Это целое число, а не символ. Key определяет нажатую в момент события клавишу клавиатуры. Некоторые коды:
Параметр Key является целым числоя. Определяюшим клавишу, а не символ. Реакцию на нажатие клавиши Enter можно проверить так: If (Key= VK_RETURN) then … Для клавиш символов и цифр можно воспользоваться функцией ord, определяющей код символа. Коды латинских символов в верхнем регистре совпадают с виртуальными кодами, используемыми в параметре Key: If (Key= ord(‘Y’)) then … Пример распознавания комбинации клавиш Alt-X: If (Key= ord(‘X’)) and (ssAlt in Shift)) then …; Заголовок обработчика onKeyPress: procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); Параметр Key определяет нажатую клавишу символа, имеет тип char. В данном случае в обработчик передается не виртуальный код клавиши, а символ, по которому моно определить, прописная это буква, или строчная, русская или латинская. Пусть ответ на вопрос положителен, если пользователь ввел «Д» или «д», и отрицателен, если – «Н» или «н»: If ((Key= ‘Д’) or (Key= ‘д’)) then … или If (Key in [‘Н’, ‘н’]) then … или Реакцию на все возможные ответы обеспечивает структура case: Case Key of ‘Д’, ‘д’: …; ‘Н’, ‘н’: …; else beep end; Параметр Key передается как var. Это позволяет в обработчике события изменять этот параметр, изменяя соответственно его стандартную обработку в компоненте, поскольку ваш обработчик события срабатывает раньше стандартного обработчика компонента. Например, в окно редактирования на форме пользователь может вводить только целые числа без знака, разделенные запятыми и пробелами. Моно обеспечить безошибочный ввод, подменяя все недопустимые символы нулевым, например так: If not (Key in [‘0’..’9’,’ ‘,’,’) then Key:=#0; При нажатии любой клавиши, кроме клавиши с цифрой, запятой или пробелом, символы подменяются нулевым символом. Можно добавить в обработчик звуковой сигнал при нажатии пользователем ошибочной клавиши: If not (Key in [‘0’..’9’,’ ‘,’,’) then begin Key:=#0; Beep; End Контрольні питання 1. Охарактеризувати процедуру обробки подій від клавіатури та миші 2. Розповісти про розпізнання витоку події, при натисканні кнопок або клавіш, координат курсора САМОСТІЙНА РОБОТА СТУДЕНТА ЗМІСТОВИЙ МОДУЛЬ 6: ПРОГРАМУВАННЯ З ГРАФАМИ ТЕМА 6.2: ВІЗУАЛЬНІ КОМПОНЕНТИ Самостійне заняття №30 – Редактори символьної інформації
Дата добавления: 2014-12-25; Просмотров: 558; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |