Кузин А.В., Левонисова С.В. Базы данных (5-е издание, 2012) (1084448), страница 35
Текст из файла (страница 35)
Процедура его обработки имеет один параметр Cancel. Еслиустановить значение этого параметра равным True, то событиебудет отменено. Отмена события будет вызывать откат всех изменений в записи, что эквивалентно нажатию клавиши [Esc], Этоновое событие в Access, которое удобно использовать для проверки наличия изменений в записи.12. Событие При обновлении (Updated) возникает при изменении объекта OLE и применяется только к свободным и присоединенным рамкам объекта. Процедура обработки данного события181используется для проверки, изменились ли данные в объекте OLEпосле последнего сохранения. Процедура имеет один параметрCode, указывающий, каким образом обновлялся объект, который может принимать значения 0; 1; 2; 3.
Значение 0 указывает,что данные объекта изменены. Значение 1 указывает, что данныеобъекта сохраняются приложением, создавшим объект. Значение 2 указывает, что файл объекта OLE закрывается приложением, которое его создало. Значение 3 указывает, что файл объектаOLE переименован создавшим его приложением.13. События фокуса происходят, когда форма, отчет или элемент управления в форме получают или теряют фокус, а такжекогда форма или отчет становятся активными или, наоборот, —неактивными.14.
Событие Вход происходит перед тем, как элемент управления в форме получает фокус от другого элемента управления втой же форме, или когда при открытии формы получает фокуспервый элемент управления. Его удобно использовать для выводана экран каких-либо сведений об этом элементе. Данное событиепроисходит до события Получение фокуса (GetFocus), но послесобытия Текущая запись (Current).15.
Событие Выход (Exit) происходит перед тем, как данныйэлемент управления передаст фокус другому элементу управления той же формы, но до события Потеря фокуса (LostFocus).16. Событие Получение фокуса (GetFocus) происходит, когдаформа или элемент управления формы получают фокус. Элементуправления может получить фокус только, если он видим и доступен (т. е. его свойства Вывод на экран (Visible) и Доступ (Enabled)имеют значения Да).
При этом событие Получение фокуса происходит после события Вход. Форма может получить фокус, толькоесли все поля в ней заблокированы, в противном случае событиеПолучение фокуса для формы не возникает.17. Событие Потеря фокуса (LostFocus) происходит каждый раз,когда форма или элемент управления в форме теряют фокус. Данное событие происходит после события Выход (Exit).18. Событие Включение (Activate) возникает, когда форма илиотчет получают фокус, становясь активными.
Это происходит, когдаформа или отчет открываются при щелчке мышью на одном изэлементов управления, т.е. при переносе таким образом фокуса,и когда в программе VBA выполняется метод SetFocus объекта.Форма при этом обязательно должна быть видима. Событие Включение возникает до события Получение фокуса, и его удобно использовать для выведения на экран панели инструментов, связанной с формой.19.
Событие Отключение (Deactivate) происходит, когда фокусиз формы или отчета переносится на другое окно (таблицы, запроса, формы, отчета, макроса, модуля или базы данных). Однако182гоно не возникает, когда фокус переходит в диалоговое окно илидругое приложение. Событие Отключение возникает после события Потеря фокуса.20. События клавиатуры происходят в форме и элементе формы, когда пользователь нажимает клавиши на клавиатуре или жевыполняется макрокоманда SendKeys.
Все события клавиатуры связываются с тем объектом в форме, который имеет в данный момент фокус. Обычно это один из элементов управления. Формаможет получить фокус (а значит, и события клавиатуры могутотноситься к форме) только в случае, если все ее элементы управления заблокированы или невидимы. Если нужно привязать этисобытия именно к форме, а не к элементу формы, то можно присвоить свойству Перехват нажатия клавиш (KeyPreview) для формы значение Да (Yes).
Тогда все события клавиатуры возникаютсначала для формы, а потом уже для элемента управления, имеющего фокус. Это позволяет программировать реакцию формы нанажатие определенных клавиш вне зависимости от того, в какомэлементе управления формы находится фокус.21.
События Клавиша вниз (KeyDown) и Клавиша вверх (KeyUp)возникают всякий раз, когда пользователь нажимает или отпускает клавишу на клавиатуре и при этом фокус находится на элементе управления или форме. Процедуры обработки этих событийиспользуют, когда требуется определить, какую клавишу нажалпользователь: функциональную, клавишу управления курсором,клавишу цифровой панели или комбинацию клавиш с [Shift], [Ctrl]или [Alt].Данные события имеют два параметра: KeyCode и Shift.
Параметр KeyCode — это целое число, представляющее собой код нажатой клавиши. Параметр Shift позволяет определить, в каком сочетании нажимались клавиши: 1 — [Shift], 2 — [Ctrl], 4 — [Alt], 0 —не использовались никакие сочетания клавиш. Если же использовалась комбинация клавиш [Shift] + [Ctrl] + [Alt] в любом сочетании, то параметр Shift будет равен сумме значений каждой клавиши.22. Событие Нажатие клавиши (KeyPress) происходит, еслипользователь нажимает и отпускает любую комбинацию клавишдля элемента управления или формы, имеющей фокус. В отличиеот событий Клавиша вниз и Клавиша вверх это событие не происходит, когда нажимаются функциональные клавиши, клавишиуправления курсором и клавиши [Shift],[Ctrl], или [Alt].
Крометого, эти события различны для верхнего и нижнего регистров.Процедура обработки этого события имеет один параметрKeyAscii — целое число, представляющее собой код нажатой клавиши.Если пользователь нажимает и удерживает некоторую клавишу, то события Клавиша вниз и Нажатие клавиши повторяются до183тех пор, пока он не отпустит эту клавишу, после чего возникаетсобытие Клавиша вверх. Если результатом нажатия клавиши является перевод фокуса с одного элемента на другой, то событиеКлавиша вниз возникает для первого элемента, а события Нажатие клавиши и Клавиша вверх — для второго. Если в результатенажатия клавиши появляется диалоговое окно, то возникают события Клавиша вниз и Нажатие клавиши, а событие Клавиша вверхне возникает.23. События мыши происходят, когда какое-либо действие вформе или ее элементе управления выполняется с помощью мыши.События мыши не определены для элементов управления в отчетах, а также для флажков и переключателей в группах, они определены только для группы в целом.24.
Событие Нажатие кнопки (Click) возникает как в самойформе, так и в элементах управления формы. В форме событиеНажатие кнопки возникает, когда пользователь щелкает мышьюна пустой ее области или на области выделения записи в форме.Для элемента управления событие Нажатие кнопки возникает прищелчке мышью не только на самом элементе, но и на присоединенной к нему надписи, а также в следующих случаях:при выборе элемента из списка независимо от того, был онвыбран с помощью мыши или клавиш управления курсором споследующим нажатием клавиши [Enter];при нажатии клавиши [Пробел], когда фокус установлен нафлажке, переключателе или командной кнопке;при нажатии клавиши [Enter] в форме, которая содержит кнопкусвойства По умолчанию (Default) со значением Да (Yes) (тогдаименно на эту кнопку по умолчанию устанавливается фокус);при нажатии клавиши [Esc] в форме, которая содержит кнопку [Отмена] (Cancel) со значением свойства Да (Yes);при нажатии клавиш доступа, если они связаны с кнопкамина форме.Таким образом, процедуры обработки событий Нажатие кнопкизапускаются независимо от того, каким образом эта кнопка выбрана — щелчком мыши, нажатием клавиши [Enter] или нажатиемклавиши доступа.
Процедура обработки события запускается толькоодин раз. Если требуется, чтобы она запускалась несколько раз(пока кнопка остается нажатой), нужно использовать свойствоАвтоматический повтор (AutoRepeat) для кнопки. Если нужно определить, какой кнопкой мыши выполнялся щелчок, следует использовать события Кнопка вниз (MouseDown) и Кнопка вверх(MouseUp).25. Событие Двойное нажатие кнопки (DblClick) происходитпосле быстрого двойного щелчка мышью на форме или элементеуправления, при этом интервал между щелчками не должен превышать предельного времени, заданного в панели управления184Windows.
Событие Двойное нажатие кнопки для формы и элементауправления формы определено так же, как и событие Нажатиекнопки. Однако для элементов управления результат этого события зависит от типа элемента управления. По умолчанию двойнойщелчок мышью в текстовом поле приводит к выделению слова, ав объекте OLE — запускает этот объект для редактирования. Вводяпроцедуру обработки для данного события, можно переопределить стандартные действия Access. При этом процедура обработкиимеет один параметр Cancel, при присвоении которому значенияTrue можно отменить это событие.26. Событие Перемещение указателя (MouseMove) генерируетсянепрерывно, когда пользователь перемещает указатель мыши пообъектам формы. Пока указатель движется в границах объекта, событие генерируется для данного объекта; когда указатель попадаетна пустую область формы, область выделения записи или полосупрокрутки, событие генерируется для формы.