§ 4. Аб'ектна-падзейная мадэль работы праграмы

4.2. Падзеі

Арганізацыя ўзаемадзеяння паміж праграмай і карыстальнікам кіруецца падзеямі: карыстальнік можа націснуць на клавішу мышы або клавіятуры, перамясціць мыш, увесці тэкст і інш.

Метад праграмiравання, заснаваны на кіраванні падзеямі, называюць падзейна-арыентаваным праграмiраваннем.

Кожная падзея звязана з якім-небудзь аб'ектам, якому перадаецца кіраванне ў той момант часу, калі адбываецца падзея.

Функцыя, ініцыяваная падзеяй, называецца апрацоўшчыкам падзеі.

У сучасных мовах праграмiравання падзеі і апрацоўшчыкі падзей з'яўляюцца цэнтральным звяном рэалізацыі графічнага інтэрфейса карыстальніка. Сярод асноўных падзей можна вылучыць тры катэгорыі: падзеі мышы, падзеі клавіятуры і сістэмныя падзеі (прыклады 4.44.6).

Запушчаны на выкананне праект знаходзіцца ў рэжыме чакання, рэагуючы на падзеі, улічаныя пры яго стварэнні, выкліканыя дзеяннямі карыстальніка або якія ўзнікаюць у самой праграме.

Аб'ектна-падзейная мадэль праграмы прадугледжвае наступнае:

  • стварэнне аб'ектаў з характэрнымі ім уласцівасцямі і метадамі;
  • апісанне падзей, пры якіх аб'ект можа выконваць алгарытм апрацоўкі даных, змяняць свой стан або актывізаваць іншы аб'ект.

Прыклад 4.4. Падзеі мышы ўзнікаюць у тым выпадку, калі карыстальнік здзяйсняе якія-небудзь дзеянні з мышшу:

Click

Націск левай кнопкі мышы

DblClick

Двайная пстрычка левай кнопкай мышы

MouseDown

Націск на любую кнопку мышы. Параметры апрацоўшчыка падзеі дазваляюць вызначыць, якая з кнопак была націснутая, і ў якім пункце.

MouseUp

Вызваленне кнопкі мышы, якая была націснутая

MouseMove

Перамяшчэнне паказальніка мышы

Прыклад 4.5. Падзеі клавіятуры адбываюцца пры націску клавіш на клавіятуры:

KeyDown

Націск любой клавішы, уключаючы функцыянальныя і спецыяльныя

KeyPress

Націск клавішы з тэкставым сімвалам

KeyUp

Вызваленне любой клавішы

Прыклад 4.6. Сістэмныя падзеі кіруюцца функцыямі аперацыйнай сістэмы:

Create

Адбываецца пры стварэнні аб'екта

Paint

Узнікае, калі элемент неабходна перамаляваць

Resize

Адбываецца, калі памеры элемента змяняюцца

Enter

Узнікае, калі элемент кіравання становіцца актыўным

Leave

Адбываецца, калі элемент кіравання перастае быць актыўным