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 – на объект, принявший перетащенный объект. 


 

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

24630. Порядок нарахування з/п за невідпрацьований на підпр-ві час. Нарахування єдиного соціального внеску 31.5 KB
  Відповідно до кодексу законів про працю оплата за невідпрацьований час і за особливі умови праці передбачає різноманітні види оплат. Відрядникам доплата здійснюється за всі понад нормові години в розмірі 100 тарифної ставки за погодинною системою компенсація шляхом надання відпустки не допускається. оплата часу освоєння нової продукції здійснюється за середнім заробітком за попередні 6 місяців оплата при переведені на нижче оплачу вальну роботу та при переміщенні. При переміщенні працівника може знижуватись заробіток із незалежних від...
24631. Організація документування господарських операцій та документообігу 38.5 KB
  Документація це спосіб суцільного і безперервного відображення обєктів бух обліку шляхом використання бухгалтерських документів. У випадках установлених законодавством а також Міністерствами і відомствами бланки первинних документів можуть бути віднесені до бланків суворої звітності. Керівник також встановлює перелік осіб які мають право підпису грошових документів. Ці особи несуть відповідальність за своєчасне і якісне складання документів.
24632. Облік запасів підприємництва 31 KB
  Згідно з ПсБО 9 запаси це активи які: 1 утримуються для подальшого продажу 2 перебувають у процесі вирва з метою подальшого продажу продукту вирва 3 утримуються для споживання під час вирва продії виконання робітта надання послуг а також управління вирвом. Обліку запаси включають: 1 сировину і основні матеріали 201 2 купівельні напівфабрикати та комплектуючі вироби 202 3 паливо 203 4 тара і тарні матеріали 204 5 будівельні матеріали 205 6 матеріали передані в переробку 206 7 запчастини 207 8матеріали г...
24633. Облік основних засобів 30 KB
  Облік основних засобів.Основні засобиїх класифікація і оцінка Методологією обліку основних засобів визначає ПсБО7Основні засоби. Обєкт основних засобів це закінчений пристрій з усіма пристосуваннями або окремий конструктивно відокремлений предмет що призначений для виконання певних самостійних функцій. Облік основних засобів ведеться на активному балансовому рахунку 10 основні засоби.
24634. Облік нематеріальних активів 29 KB
  Облік нематеріальних активів Методологію обліку нематеріальних активів визначає ПсБО 8 нематеріальні активи Нематеріальний актив це актив який немає матеріальної форми може бути ідентифікований та утримується підприємством з метою використання на протязі більше одного року. Бух облік немат активів ведеться щодо кожного обєкта за такими групами: А права користування природними ресурсами Б права користування майном В права на знаки для товарів і послуг тов.знаки торгові марки фірмові назви і т д Г права на обєкти промислової...
24635. Особливості обліку МШП терміном експлуатації до і більше 1 року 32.5 KB
  Положенням стандартом 9 передбачено що з метою бухгалтерського обліку запаси включають:малоцінні і швидкозношувані предмети які використовуються не більше одного року або одного операційного циклу якщо він більше року. Малоцінні і швидкозношувані предмети строк корисного використання яких більше одного року обліковуються в складі інших необоротних матеріальних активів. Організація обліку малоцінних і швидкозношуваних предметів зі строком корисного використання менше одного року або одного операційного циклу повинна повністю...
24636. Амортизація необоротних активів. Методи нарахування та облік амортизації 30.5 KB
  Амортизація це систематичний розподіл вартості яка амортизується протягом строку їх корисного використання. Зменшення залишкової вартості виходить з того що корисність і продуктивність необ. Норма амортизації застосовується не до вартості що амортизується а до балансової залишкової вартості обєкта на кінець попереднього періоду. Прискореного зменшення залишкової вартості складається у визначенні річної суми амортизації обєкту основних засобів виходячи з основної вартості такого обєкту на початок звітного року.
24637. Аналіз власного оборотного капіталу 35 KB
  Аналіз власного оборотного капіталу. Фінансовий стан підприємства залежить від того наскільки раціонально сформовані джерела фінансування поточних активів оборотного капіталу. Поточні активи створюються як за рахунок власного капіталу так і за рахунок короткострокових позикових коштів. Бажано щоб наполовину вони були сформовані за рахунок власного а наполовину за рахунок позикового капіталу.