Главная страница
Навигация по странице:

  • Таблица

  • реферат Простые операторы. Характеристика форм.docx. Лр операторы и выражения Delphi


    Скачать 1.3 Mb.
    НазваниеЛр операторы и выражения Delphi
    Дата17.04.2023
    Размер1.3 Mb.
    Формат файлаdoc
    Имя файлареферат Простые операторы. Характеристика форм.docx.doc
    ТипПрограмма
    #1067638
    страница23 из 26
    1   ...   18   19   20   21   22   23   24   25   26

    Обработка событий клавиатуры


    Благодаря умению получать фокус ввода потомки класса TWinControl способны реагировать на события клавиатуры. Клавиатурных событий всего три, и они возникают в строгой последовательности:

    1. В момент опускания клавиши у находящегося в фокусе ввода оконного элемента управления генерируется событие OnKeyDown().

    2. В момент фиксации клавиши в нажатом положении вызывается событие OnKeyPress().


    docshapegroup488

    1. Подъем клавиши сопровождается событием OnKeyUp().

    События опускания и подъема клавиши (первое и третье в нашем списке) описываются идентичным набором параметров:

    property OnKeyDown: TKeyEvent;

    property OnKeyUp: TKeyEvent;

    type TKeyEvent = procedure(Sender: TObject; var Key: Word;

    Shift: TShiftState) of object;

    Здесь: Sender ссылка на элемент управления, в котором возникло событие; Shift — индикатор состояния служебных клавиш , и ; Key — код клавиши (табл. 5.5).

    Таблица5.5.Кодыклавиш


    Код клавиши

    Клавиша

    Код клавиши

    Клавиша

    VK_CANCEL

    /

    VK_PRIOR


    Up>

    VK_BACK



    VK_NEXT


    Down>

    VK_TAB



    VK_END



    VK_RETURN

    >

    VK_HOME



    VK_SHIFT

    >

    VK_LEFT

    <>

    VK_CONTROL

    >

    VK_UP

    <>

    VK_MENU

    >

    VK_RIGHT

    <>

    VK_PAUSE


    >

    VK_DOWN

    <>

    VK_CAPITAL

    >

    VK_INSERT



    VK_ESCAPE

    >

    VK_DELETE

    >

    VK_SPACE

    <Пробел >

    VK_NUMLOCK

    Lock>

    VK_SNAPSHOT


    Screen>

    VK_SCROLL

    Lock>

    Цифровые и символьные клавиши основной клавиатуры

    VK_0, ..., VK_9

    <0>, ..., <9>

    VK_A, ..., VK_Z

    , ...,

    Функциональные клавиши

    VK_F1, ..., VK_F12

    , ...,

    Дополнительная цифровая клавиатура (Num Lock включен)

    VK_NUMPAD0, ..., VK_NUMPAD9

    <0>, ..., <9>

    VK_MULTIPLY

    <*>

    VK_SUBTRACT

    <–>

    VK_ADD

    <+>

    VK_DIVIDE



    VK_DECIMAL

    <.>



    В момент фиксации клавиши в нажатом состоянии генерируется событие:

    property OnKeyPress: TKeyPressEvent;

    type TKeyPressEvent = procedure(Sender: TObject;

    var Key: Char) of object;

    Обратите внимание на то, что на этот раз параметр-переменная Key в обработчике отслеживает не код клавиши, а выбранный пользователем символ. Благодаря этому можно проверять корректность вводимого текста (листинг 5.4).
    docshapegroup490

    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) и выдается сообщение об ошибке.

    1   ...   18   19   20   21   22   23   24   25   26


    написать администратору сайта