реферат Простые операторы. Характеристика форм.docx. Лр операторы и выражения Delphi
Скачать 1.3 Mb.
|
Обработка событий клавиатурыБлагодаря умению получать фокус ввода потомки класса TWinControl способны реагировать на события клавиатуры. Клавиатурных событий всего три, и они возникают в строгой последовательности: В момент опускания клавиши у находящегося в фокусе ввода оконного элемента управления генерируется событие OnKeyDown(). В момент фиксации клавиши в нажатом положении вызывается событие OnKeyPress(). Подъем клавиши сопровождается событием OnKeyUp(). События опускания и подъема клавиши (первое и третье в нашем списке) описываются идентичным набором параметров: property OnKeyDown: TKeyEvent; property OnKeyUp: TKeyEvent; type TKeyEvent = procedure(Sender: TObject; var Key: Word; Shift: TShiftState) of object; Здесь: Sender — ссылка на элемент управления, в котором возникло событие; Shift — индикатор состояния служебных клавиш Таблица5.5.Кодыклавиш
В момент фиксации клавиши в нажатом состоянии генерируется событие: property OnKeyPress: TKeyPressEvent; type TKeyPressEvent = procedure(Sender: TObject; var Key: Char) of object; Обратите внимание на то, что на этот раз параметр-переменная Key в обработчике отслеживает не код клавиши, а выбранный пользователем символ. Благодаря этому можно проверять корректность вводимого текста (листинг 5.4). procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if ((KEY<'0') or (KEY>'9') or (Length(Edit1.Text)>=11)) and (KEY<>#8) then {#8 — код клавиши Backspace} begin Key:=#0; if (Length(Edit1.Text)>=11)=false then ShowMessage('Допускаются только цифры!') else ShowMessage('Длина текста превысила 11 знаков!') end; end; Событие осуществляет контроль верности ввода телефонного номера в строку ввода Edit1. Процедура допускает ввод только цифр, причем длина номера не должна превышать 11 символов. В противном случае ввод ошибочного символа отменяется (параметру-переменной Key присваивается значение #0) и выдается сообщение об ошибке. 9>0>9>0> |