28613

События, обрабатываемые формой

Доклад

Информатика, кибернетика и программирование

В этом случае создается объектнаследник того компонента который должен обрабатывать событие и специальный методобработчик этого события. Форма получает событие OnActivate при ее активизации. Форма получает это событие перед закрытием формы которое может наступить либо при вызове метода Close либо при выборе команды Close из системного меню. Это событие может наступить либо при вызове метода Close либо при выборе команды Close из системного меню.

Русский

2013-08-20

16.6 KB

8 чел.

Объектно-ориентированные библиотеки классов типа ObjectWindows фирмы Borland предоставляют более простой способ обработки сообщений. Все классы имеют ряд предопределенных обработчиков и “умеют” реагировать на стандартные события. Одним из назначений средств визуального программирования, к которым относится Delphi, является упрощение создания Windows-приложений. Delphi дает разработчику полный доступ к событийной модели работы Windows, максимально упрощая процесс обработки того или иного события. Естественно, невозможно предусмотреть все случаи и полностью инкапсулировать все сообщения Windows, которых более 200. Визуальные компоненты содержат обработчики наиболее общих (с точки зрения ядра Windows) сообщений. При необходимости создания обработчиков других сообщений можно воспользоваться объектно-ориентированной технологией. В этом случае создается объект-наследник того компонента, который должен обрабатывать событие, и специальный метод-обработчик этого события. Но в большинстве случаев можно обойтись теми обработчиками, которые предоставляют стандартные компоненты, включенные в состав Delphi.

События, обрабатываемые формой

Базовый интерфейсный элемент форма имеет 20 обработчиков событий. 

Форма получает событие OnActivate при ее активизации. Активизация формы может произойти при получении формой фокуса, например, когда пользователь нажал кнопку мыши в рабочей области формы.

Событие OnClose наступает при закрытии формы. Форма получает это событие перед закрытием формы, которое может наступить либо при вызове метода Close, либо при выборе команды Close из системного меню.

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

Событие OnCreate возникает при начальном создании формы. В обработчике данного события можно, например, задавать начальные значения свойствам формы и предусматривать другие различные действия, которые должны происходить в момент создания формы. Форма создается при запуске приложения либо при вызове метода Create.

Событие OnDestroy возникает на финальной стадии закрытия формы и может быть вызвано с помощью методов Destroy или Free либо закрытием главной формы приложения. 

Событие OnHide возникает при “скрытии” формы, то есть когда ее свойство Visible принимает значение False. 

Событие OnShow возникает, когда форма отображается (то есть когда ее свойство Visible принимает значение True). 

Событие OnPaint возникает при необходимости перерисовки содержимого формы. Например, оно может возникнуть при получении формой фокуса. 

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

События от клавиатуры и мыши

Для большинства видимых элементов определен набор обработчиков событий, связанных с мышью и клавиатурой. Изначально источником этих событий является драйвер клавиатуры или драйвер мыши, затем ядро Windows преобразует их в стандартный вид и пересылает окну программы. Прежде чем послать сообщение о вводе с клавиатуры, ядро Windows определяет, какое окно является активным. В Delphi-программах активными элементами будут одна из форм (или главная форма) и элемент, определенный свойством ActiveControl.

События от клавиатуры получают только некоторые оконные компоненты.

Событие OnKeyPress возникает при нажатии клавиши на клавиатуре. Обычно это событие обрабатывается в том случае, когда необходима реакция на нажатие одной клавиши на клавиатуре. Параметр Key имеет тип Char и содержит ASCII-код нажатой клавиши. Для клавиш, которые не имеют ASCII-кодов (соответствующих символов), таких как Shift или F1, событие OnKeyPress не возникает. При использовании комбинаций клавиш, например Shift+A, возникает только одно событие OnKeyPress. Так, при нажатии комбинации Shift+A параметр Key будет иметь значение “А” (зависит от состояния переключателя Caps Lock). Для обработки нажатий клавиш, не имеющих ASCII-эквивалентов, и комбинаций клавиш необходимо использовать события OnKeyDown и OnKeyUp.

Событие OnKeyPress имеет тип TKeyPressEvent и описано следующим образом:

TKeyPressEvent = procedure (Sender: TObject; var Key: Char) of Оbject;

Событие OnKeyDown происходит при нажатии клавиши на клавиатуре. Обработчик этого события получает информацию о нажатой клавише и состоянии клавиш Shift, Alt и Ctrl, а также о нажатой кнопке мыши. Информация о клавише передается параметром Key, который имеет тип Word. Для определения того, какая именно клавиша была нажата, необходимо использовать коды виртуальных клавиш.

OnKeyDown(Sender: TObject; var Key: Word; Shift:TShiftState);

Параметр Key содержит код нажатой клавиши, а параметр Shift может иметь одно из следующих значений:

ssShift – нажата клавиша Shift;

ssAlt – нажата клавиша Alt;

ssCtrl – нажата клавиша Ctrl;

ssLeft, ssMiddle, ssRight – нажаты левая, средняя и правая кнопки мыши; ssDouble – нажаты правая и левая кнопки мыши.

Событие OnKeyUp является парным событием для OnKeyDown и возникает, когда пользователь отпускает нажатую ранее клавишу. Как и для события OnKeyDown, возможно распознать клавиши типа Shift, Alt и Ctrl и кнопки манипулятора мышь

Для большинства видимых элементов определен набор обработчиков событий, связанных с мышью.

Событие OnClick возникает при нажатии кнопки мыши в области компонента. Это событие также происходит, когда пользователь:

1) выбрал элемент таблицы (grid), древовидного списка (outline), списка или комбинированного списка нажатием одной из клавиш управления курсором;

2) нажал клавишу Enter, когда активным элементом формы была кнопка со значением по умолчанию (заданная свойством Default);

3) нажал клавишу Esc, когда в активной форме имелась кнопка Cancel (заданная свойством Cancel);

4) нажал клавишу для вызова кнопки. Например, если кнопка имела заголовок ‘&Bold’, клавишей для вызова кнопки будет клавиша “В”.

Событие OnDblClick возникает при двойном нажатии кнопки мыши в области компонента. 

Событие OnMouseDown происходит при нажатии кнопки мыши, когда курсор находится в области компонента. Обработчик этого события используется в тех случаях, когда необходимо предпринять какие-либо действия при нажатии кнопки мыши в области компонента. Параметр Button этого события позволяет определить, какая кнопка была нажата, а параметр Shift – были ли нажаты клавиши Shift, Ctrl или Alt при нажатии кнопки мыши. Событие OnMouseDown имеет тип TMouseEvent, описанный следующим образом:

TMouseEvent = procedure (Sender: TObject; Button: TMouseButton; Shift:

TShiftState; X, Y: Integer) of Оbject;

Параметры Х и Y содержат координаты курсора мыши в момент нажатия клавиши.

Событие OnMouseMove происходит при перемещении манипулятора мышь. Параметр Shift позволяет определить, были ли нажаты клавиши Shift, Ctrl или Alt при нажатии кнопки мыши. Событие OnMouseMove имеет тип TMouseMoveEvent, описанный следующим образом:

TMouseMoveEvent = procedure(Sender; TObject; Shift: TShiftState; X, Y: Integer) of Оbject; Событие OnMouseUp является парным событию OnMouseDown и возникает в том случае, когда пользователь отпустил ранее нажатую кнопку мыши. Параметр Shift позволяет определить, были ли при этом нажаты клавиши Shift, Ctrl или Alt. Параметры X и Y содержат координаты курсора мыши в момент нажатия клавиши. Параметр Button имеет тип TMouseButton.

У событий системы Delphi существует приоритет. Событие OnClick является более важным, чем OnMouseUp, и должно обрабатываться первым. Приоритет события OnDblClick выше, чем приоритет событий OnMouseDown и OnMouseUp.

Событие OnEnter возникает, когда компонент получает фокус ввода.

Событие OnExit возникает, когда компонент теряет фокус.

События протокола Drag&Drop

Операционная система Windows широко использует специальный прием связывания программ с данными, который называется Drag&Drop (перетащи и отпусти). Разработчик может предусмотреть возможность “перетаскивания” целых компонентов, а также обмена содержимым между компонентами. В Delphi этот протокол базируется на двух свойствах и трех событиях. 

Свойство DragMode определяет, как будет выполняться весь комплекс действий, связанных с Drag&Drop: dmManual – вручную; dmAutomatic – автоматически (свойствами и методами компонентов).

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

Событие OnDragOver возникает в момент перемещения указателя мыши с “грузом” над компонентом. Заголовок процедуры:
Procedure (Sender, Source : TObject; X, Y:Integer; State : TDragState; 

Var Accept: Boolean);
где Sender – компонент, который возбудил событие; Source – компонент-отправитель “груза”; X, Y – текущие координаты указателя мыши в пикселях клиентской области компонента; State – состояние указателя (dsDragEnter – только что появился над компонентом; dsDragLeave – только что покинул компонент или была отпущена кнопка мыши; dsDragMove – перемещается над компонентом). В параметре Accept обработчик сообщает, готов ли компонент принять данные.

Событие OnDragDrop возникает в случае, когда пользователь “отпустил” перетаскиваемый объект. Параметры обработчика совпадают по назначению с одноименными параметрами OnDragOver. В обработчике OnDragDrop должен содержаться код, который будет выполняться, когда пользователь “отпустил” объект. Параметр Source указывает на объект, который был “отпущен”, а параметр Sender – на объект, принявший перетащенный объект. 


 

А также другие работы, которые могут Вас заинтересовать

859. Основы организации бизнеса 162.5 KB
  Развитие в России всех видов собственности и видов деятельности, современных предприятий и представительств зарубежных стран. Формы собственности и организация управления. Адаптация к рынку. Тенденции организационных изменений при переходе к рынку. Программы государственной поддержки малого бизнеса.
860. Интеграция организаций и ее сфера. Понятие венчурных фондов и организаций 176.5 KB
  Разновидности трестов. Финансово-промышленные группы. Их классификация. Формы финансово-промышленных групп. Преимущества их пред другими субъектами рынка. Направления деятельности ФПГ. Понятие венчурных фондов и организаций. Транснациональные кампании. Их типы и основные характеристики. Международные совместные предприятия.
861. Основы профессиональных информационных технологий 158 KB
  Рассмотреть основные понятия, термины и определения информатики и информационных технологий. Информация и ее свойства. Информационные технологии в профессиональной деятельности. Цель и задачи изучения учебного курса Информатика и информационные технологии в профессиональной деятельности.
862. Детские церебральные параличи 164 KB
  Заболевание центральной нервной системы. Глубокая недоношенность и гидроцефалия. Травматическое повреждение головного и спинного мозга. Атонически-астатическая форма. Реабилитационные мероприятия при ДЦП. Клинико-педагогическая характеристика речевых нарушений при ДЦП.
863. Самоорганизация в живой и неживой природе 136.5 KB
  Порядок и беспорядок в природе. Особенности эволюционных процессов. Синергетический подход в естествознании. Общие свойства систем, способных к самоорганизации. Качественное описание процесса самоорганизации. Синергетика и самоорганизация.
864. Виды производства молока 33.5 KB
  Промышленность выпускает большой разнообразный ассортимент молочных продуктов. Блочное молоко долго хранится и применяется для изготовления шоколада и шоколадных конфет.
865. Полномочия Верховной Рады Украины 37 KB
  Назначение очередных и внеочередных выборов в органов местного самоуправления. Предоставление согласия на назначение Президентом Украины на должность Генерального прокурора Украины; высказывание недоверия Генеральному прокурору Украины, которая имеет следствием его отставку из должности.
866. Организация и планирование производства. Управление дистанцией сигнализации и связи 782.5 KB
  Расчет технического штата для обслуживания устройств СЦБ и связи. Поездная и станционная радио и громко говорящая связь. Расчет эксплуатационного штата телеграфно-телефонной станции. Расчет штата производственной базы дистанции. Четырех недельный план-график технического обслуживания устройств СЦБ чётной сортировочной горки ГАЦ.
867. Алгоритм его свойства. Знакомство с программной средой Турбо Паскаль. 178.5 KB
  Ввести понятие алгоритма, блок - схемы, рассмотреть свойства и типы алгоритма. Формировать умения составлять алгоритм, используя его свойства, блок-схемы. Ознакомить с разновидностями блок-схемами. Познакомить с программной средой Турбо Паскалем.