События Клавиша вниз (KeyDown) и Клавиша вверх (KeyUp)

Автор работы: Пользователь скрыл имя, 30 Января 2011 в 13:13, реферат

Описание работы

События Клавиша вниз (KeyDown) и Клавиша вверх (KeyUp) возникают всякий раз, когда пользователь нажимает или отпускает клавишу на клавиатуре и при этом фокус находится на элементе управления или форме. Процедуры обработки этих событий используют, когда требуется определить, какую клавишу нажал пользователь — функциональную, клавишу управления курсором, клавишу цифровой панели или комбинацию клавиш с <Shift>, <Ctrl> или <Alt>. Они имеют два параметра: KeyCode и Shift. Параметр KeyCode — это целое число, представляющее код нажатой клавиши.

Файлы: 1 файл

1.doc

— 86.50 Кб (Скачать файл)

1. События Клавиша вниз (KeyDown) и Клавиша вверх (KeyUp) возникают всякий раз, когда пользователь нажимает или отпускает клавишу на клавиатуре и при этом фокус находится на элементе управления или форме. Процедуры обработки этих событий используют, когда требуется определить, какую клавишу нажал пользователь — функциональную, клавишу управления курсором, клавишу цифровой панели или комбинацию клавиш с <Shift>, <Ctrl> или <Alt>. Они имеют два параметра: KeyCode и Shift. Параметр KeyCode — это целое число, представляющее код нажатой клавиши. Параметр Shift позволяет определить, какие сочетания клавиш нажимались: 1 — соответствует <Shift>, 2 — <Ctrl>, 4 — <Alt>, 0 — не использовалось сочетание клавиш. Если же нажималась комбинация клавиш <Shift>, <Ctrl>, <Alt> в любом сочетании, то параметр Shift будет равен сумме значений каждой клавиши.

Событие Нажатие клавиши (KeyPress) происходит, если пользователь нажимает и отпускает любую комбинацию клавиш для элемента управления или формы, имеющей фокус. В отличие от событий Клавиша вниз (KeyDown) и Клавиша вверх (KeyUp), данное событие не происходит, когда нажимаются функциональные клавиши, клавиши управления курсором и клавиши <Shift>, <Ctrl> или <Alt>. Кроме того, эти события различны для верхнего и нижнего регистров. Процедура обработки настоящего события имеет один аргумент: KeyAscii — целое число, представляющее код нажатой клавиши.

Если  пользователь нажимает и удерживает некоторую клавишу, то возникают  повторяющиеся события Клавиша  вниз (KeyDown) и Нажатие клавиши (KeyPress) до тех пор, пока он не отпустит клавишу. Тогда возникает событие Клавиша вверх (KeyUp).

Если  результатом нажатия клавиши  является перевод фокуса с одного элемента на другой, то событие Клавиша  вниз (KeyDown) возникает для первого  элемента, а события Нажатие клавиши (KeyPress) и Клавиша вверх (KeyUp) — для второго.

Если  в результате нажатия клавиши  появляется диалоговое окно, то возникают  события Клавиша вниз (KeyDown) и Нажатие  клавиши, а событие Клавиша вверх (KeyUp) не возникает. 

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

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

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

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

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

onStartDrag-Начало процесса «перетаскивания» объекта. Возможно распознавание перетаскиваемого объекта

onDragOver-Перемещение «перетаскиваемого» объекта над компонентом. Возможно распознавание перетаскиваемого объекта и координат курсора мыши

onDragDrop-Отпускание ранее нажатой кнопки мыши после «перетаскивания» объекта. Возможно распознавание перетаскиваемого объекта и координат курсора мыши

onEndDrag-Еще одно событие при отпускании ранее нажатой кнопки мыши после «перетаскивани» объекта. Возможно распознавание перетаскиваемого объекта и координат курсора мыши

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

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

Событие onClick происходит, если пользователь:

Щелкнул на компоненте

Выбрал  элемент в сетке, дереве, списке, выпадающем списке, нажал клавишу  со стрелкой

Нажал клавишу пробела, когда кнопка или  индикатор были в фокусе

Нажал клавишу Enter, а активная форма имеет кнопку по умолчанию, указанную свойством Default

Нажал клавишу Esc, а активная форма имеет  кнопку прерывания, указанную свойством Cancel

Нажал клавиши быстрого доступа к кнопке или индикатору

Приложение  установило в true свойство Checked радиокнопки RadioButton

Приложение  изменило свойство Checked индикатора CheckBox/

Вызван  метод Click элемента меню.

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

Рассмотрим  последовательности отдельных событий, наступающих при том или ином действии пользователя.

В момент запуска приложения из рассматриваемых  событий наступает только событие  onEnter в компоненте, на который передается фокус 

5. Главное меню — компонент MainMenu

Обычно  на форму помещается один компонент MainMenu. В этом случае его имя автоматически  заносится в свойство формы Menu.

Замечание. Можно поместить на форму и  несколько компонентов MainMenu с разными  наборами разделов, соответствующими различным режимам работы приложения. В этом случае во время проектирования свойству Menu формы присваивается ссылка на один из этих компонентов. А в процессе выполнения в нужные моменты это свойство можно изменять, меняя соответственно состав главного меню приложения.

Основное свойство компонента — Items. Его заполнение производится с помощью Конструктора Меню, вызываемого двойным щелчком на компоненте MainMenu или нажатием кнопки с многоточием рядом со свойством Items в окне Инспектора Объектов.

Каждый  раздел меню, т.е. каждый элемент свойства Items, является объектом типа TMenuItem, обладающим своими свойствами, методами, событиями.          

Свойство Caption обозначает надпись раздела.

Замечание. Символ минус “-” в качестве значения Caption означает разделитель.

Свойство Name задает имя объекта, соответствующего разделу меню.

Совет. Давайте этим объектам осмысленные  имена, так как иначе вы скоро  запутаетесь в ничего не говорящий  именах типа N21. Куда понятнее имена  типа MFile, Мореn.

Свойство ShortCut определяет клавиши быстрого доступа к разделу меню — “горячие” клавиши.

Чтобы определить клавиши быстрого доступа, надо открыть выпадающий список свойства ShortCut в окне Инспектора Объектов и  выбрать из него нужную комбинацию клавиш.

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

 Свойство Break используется в длинных меню, чтобы разбить список разделов на несколько столбцов. Возможные значение Break:

    mbNone — отсутствие разбиения меню (это значение принято по умолчанию),

    mbBarBreak и mbBreak — в меню вводится  новый столбец разделов, отделенный  от предыдущего полосой (mbBarBreak) или пробелами (mbBreak).

Свойство Checked, установленное в true, указывает, что в разделе меню будет отображаться маркер флажка, показывающий, что данный раздел выбран

Замечание. Сам по себе этот маркер не изменяется и в обработчик события OnClick такого раздела надо вставлять оператор

                MAutoSave.Checked := not MAutoSave.Checked;

(подразумевается,  что раздел меню назван MAutoSave).

Свойство Radioltem позволяет вводить маркеры  в разделы меню.

Radioltem = true определяет, что данный раздел должен работать в режиме радиокнопки совместно с другими разделами, имеющими то же значение свойства Grouplndex. По умолчанию значение GroupIndex равно 0. Но можно задать его большим нуля и тогда, если| имеется несколько разделов с одинаковым значением Groupindex и с Radioltem = true, то в них могут появляться маркеры флажков, причем только в одном из них.

 Если  вы зададите программно в одном  из этих разделов Checked = true, то в  остальных разделах Checked автоматически  сбросится в false. Впрочем, установка Checked = true лежит на программе; эта установка может выполняться аналогично приведенному выше onepaтору.

Описанные маркеры флажков в режиме радиокнопок  и в обычном режиме используются для разделов меню, представляющих собой различные опции, взаимоисключающие или совместимые.

Свойства Enabled (доступен) и Visible (видимый) используются для изменения состава доступных  пользователю разделов в зависимости  от режима работы приложения.

Могут быть установлены во время проектирования или программно.

Если  установить Enabled = false, то раздел будет  изображаться серой надписью и не будет реагировать на щелчок пользователя. Если же задать Visible=false, то раздел вообще не будет виден, а остальные разделы  сомкнутся, заняв место невидимого.

В разделы  меню можно вводить изображения.

Свойство Bitmap позволяет непосредственно ввести изображение в раздел, выбрав его  из указанного файла.

Свойство Imagelndex позволяет указать индекс изображения, хранящегося во внешнем  компоненте ImageList. 

Указание на этот компонент можно задать в свойстве Images компонента MainMenu. Индексы начинаются с 0. Индекс -1 (значение по умолчанию) означает, что изображения не будет.

Основное  событие раздела — OnClick, возникающее  при щелчке пользователя на разделе  или при нажатии “горячих” клавиш. 

6. Контекстное всплывающее меню — компонент PopupMenu

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

Заметим, что обычно в контекстное меню включают те команды главного меню, которые в первую очередь могут потребоваться при работе с данным компонентом.

Контекстному  меню соответствует компонент PopupMenu.

Поскольку в приложении может быть несколько  контекстных меню, то и компонентов PopupMenu может быть несколько.

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

Формирование  контекстного всплывающего меню производится с помощью Конструктора Меню, вызываемого  двойным щелчком на PopupMenu.

Замечание. Можно упростить формирование контекстного меню. Поскольку разделы контекстного меню обычно повторяют некоторые разделы уже сформированного главного меню, то можно обойтись копированием соответствующих разделов.

Для этого, войдя в Конструктор Меню из компонента PopupMenu, щелкните правой кнопкой мыши и из всплывшего меню выберите команду Select Menu (выбрать меню). Вам будет предложено диалоговое окно, в котором вы можете перейти в главное меню. В нем вы можете выделить нужный вам раздел или разделы (при нажатой клавише Shift выделяются разделы в заданном диапазоне, при нажатой клавише Ctrl можно выделить совокупность разделов, не являющихся соседними). Затем выполните копирование их в буфер обмена, нажав клавиши Ctrl-C. После этого опять щелкните правой кнопкой мыши, выберите команду Select Menu и вернитесь в контекстное меню. Укажите курсором место, в которое хотите вставить скопированные разделы, и нажмите клавиши чтения из буфера обмена — Ctrl-V. Разделы меню вместе со всеми их свойствами будут скопированы в создаваемое вами контекстное меню.  

7.

 
 
 
 
 
 
property Align: TAlign; 

type TAlign = (alNone, alTop, alBottom, alLeft, alRight, alClient, alCustom);

Задает тип  выравнивания компонента внутри формы. Использовать это свойство рекомендуется  тогда, когда требуется, чтобы данный компонент располагался в определенной части формы вне зависимости от ее размеров. Возможные значения:

alNone - выравнивание  отсутствует; 

alTop - компонент  размещается в верхней части  формы и его ширина становится  равной ширине формы; 

alBottom - компонент размещается в нижней  части формы и его ширина становится равной ширине формы;

alLeft - компонент  размещается в левой части  формы и его высота становится  равной высоте формы; 

alRight - компонент  размещается в правой части  формы и его высота становится  равной высоте формы; 

alClient - компонент занимает всю рабочую область формы.

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

property Color: TColor; Задает цвет фона формы или цвет компонента.
property Ctl3D: Boolean; Задает вид  компонента: False - двухмерный вид; True - трехмерный вид.
property Cursor: TCursor Определяет  вид курсора мыши, который будет  отображаться при нахождении курсора  в рабочей области компонента.
property DragCursor: TCursor; Определяет  вид курсора мыши, который будет  отображаться при перетаскивании объекта.
property Enabled: Boolean; Если True, то компонент  реагирует на сообщения от клавиатуры, мыши и таймера. В противном случае они игнорируются. Другими словами, в этом случае компонент является недоступным.
property Font: TFont; Определяет  шрифт и его характеристики
property Height: Integer; Задает высоту компонента или формы.
property Hint: string; Задает текст, который будет отображаться, если курсор находится в области компонента. Работает в паре со свойством ShowHint.
property Left: Integer; Определяет  горизонтальную координату левого верхнего угла компонента (в пикселях).
property ParentColor: Boolean; Задает цвет отображения компонента на экране. Если значение равно True, то компонент  использует цвет родительского компонента, иначе используется значение собственного свойства Color. Если значение свойства Color изменено, то значение свойства ParentColor автоматически изменяется на False
property ParentCtl3D: Boolean; Позволяет указать, будет ли компонент трехмерным, или  нет. Если оно имеет значение True, то вид компонента задается свойством Ctl3D его владельца. В противном случае - собственным значением свойства Ctl3D
property ParentFont: Boolean; Если значение этого свойства True, то используется шрифт, заданный у владельца компонента. В противном случае используется шрифт, заданный собственным свойством Font
property ParentShowHint: Boolean; Определяет, какую  подсказку использовать: содержащуюся у этого компонента или у родителя. Если True, то контроль передается свойству ShowHint предка. В противном случае - собственному свойству ShowHint.
property PopupMenu: TPopupMenu; Задает название локального меню, которое отображается при нажатии правой кнопки мыши на компоненте. Это меню отображается только в том случае, если свойство AutoPopup самого локального меню имеет  значение True
property ShowHint: Boolean; Определяет, будет  ли отображаться текст, находящийся  в свойстве Hint (True - будет отображаться). При изменении значения этого  свойства на True, значение свойства ParentShowHint автоматически меняется на False.
property TabOrder: TTabOrder;

type TTabOrder = -1..32767;

Изменяет порядок  получения компонентами фокуса при  нажатии клавиши TAB
property TabStop: Boolean; Позволяет определить, может ли компонент получать фокус (True - может получать).
property Tag: Longint; Позволяет "привязать" к компоненту числовое значение. Изменение  этого свойства никак не отображается на компоненте.
property Top: Integer; Задает вертикальную координату левого верхнего угла компонента (для формы - относительно экрана).
property Visible: Boolean; Определяет  видимость компонента на экране (True - компонент видим).
property Width: Integer; Задает ширину компонента в пикселях.

Информация о работе События Клавиша вниз (KeyDown) и Клавиша вверх (KeyUp)