Lekce 2.08
Procedury pro obsluhu udßlostφ


p°edchozφ lekce (2.07) obsah kurzu nßsledujφcφ lekce (2.09)

Vφme ji₧, ₧e v∞tÜina objekt∙ dokß₧e reagovat na urΦitΘ udßlosti systΘmu Windows. Nap°φklad po kliknutφ na tlaΦφtku provede zadanou akci. Vφme ji₧ takΘ, ₧e seznam udßlostφ pro ka₧d² objekt je viditeln² v okn∞ Nastavenφ objekt∙. Nynφ se podrobn∞ji seznßmφme s tφm, jak se definuje a v programu zadßvß obsluha udßlostφ.

Jak ji₧ bylo uvedeno, definujφ se pro udßlosti procedury, kterΘ vzniklou udßlost obslou₧φ. Ukß₧eme si to na aplikaci, kterou jsme vytvo°ili v minul²ch lekcφch. Aktivujte kliknutφm myÜi hornφ tlaΦφtko s nßpisem 'Pozdrav' a zobrazte si okno Nastavenφ objekt∙. Vyberte zßlo₧ku 'Udßlosti'. Jak vidφte, je u udßlosti OnClick uvedena procedura Button1Click. Pokud na nßzvu procedury dvakrßt kliknete myÜφ, p°esunete se na zaΦßtek t∞la uvedenΘ procedury, ve kterΘ jsme v p°edchozφ lekci doplnili volßnφ funkce pro zobrazenφ systΘmovΘho hlßÜenφ. V jazyce KLONDAIK to bude nßsledujφcφ procedura (v ostatnφch jazycφch odpovφdajφcφ ekvivalent):


procedure TForm.Button1Click(Sender: TObject);
begin
   ShowMessage('Ahoj');
end;
Podobn²m zp∙sobem budete vyhledßvat i dalÜφ, automaticky dopl≥ovanΘ procedury. Nemusφte se v∙bec starat o to, kde jsou v programu umφst∞ny. SystΘm si je dokß₧e sßm nalΘzt. OvÜem pouze za p°edpokladu, ₧e nebudete sami m∞nit jmΘna objekt∙, pro kterΘ jste ji₧ zadali akce pro obsluhu udßlostφ. Stejn∞ tak nezasahujte do vygenerovanΘho zßhlavφ a ukonΦenφ vygenerovanΘ procedury.

Co je to procedura ji₧ vφte. Znßte takΘ, jak se zapisuje a pou₧φvß. Vygenerovanß procedura je vÜak trochu jinß. Seznßmφme se proto nynφ s rozdφly.


Jazyk KLONDAIK:

V jazyce KLONDAIK obsahuje jmΘno vygenerovanΘ procedury ve svΘm nßzvu jmΘno formulß°e s nßv∞Ütφm 'T', na kterΘm je objekt umφst∞n a jmΘno udßlosti, kterou mß procedura obslou₧it. JmΘno formulß°e je od jmΘna objektu+vlastnosti odd∞leno teΦkou. Je to proto, aby bylo jmΘno procedury jednoznaΦnΘ v celΘm programu a p°esto p°ehlednΘ:

procedure Tform1.Button1Click(Sender: TObject);
begin
   ShowMessage('Ahoj');
end;

Jazyk BONANZA:

V jazyce BONANZA obsahuje jmΘno vygenerovanΘ procedury ve svΘm nßzvu jmΘno objektu a bez jakΘhokoliv odd∞lovaΦe jmΘno udßlosti, kterou mß procedura obslou₧it:

sub Button1Click(Sender)
    ShowMessage("Ahoj")
end sub

Jazyk JUKON:

V jazyce JUKON obsluhujφ udßlosti funkce, jejich₧ jmΘno se sklßdß ze jmΘna objektu a bez jakΘhokoliv odd∞lovaΦe jmΘna udßlosti, kterou mß funkce obslou₧it:

function Button1Click(Sender)
{
   ShowMessage('Ahoj');
}
V procedu°e je jako prvnφ parametr uveden parametr Sender (anglicky odesφlatel), kter² mß v jazyce KLONDAIK uveden typ TObject. Tento parametr nebudeme ve sv²ch programech pou₧φvat. Je zachovßn pouze kv∙li kompatibilit∞ s jin²mi jazyky. Parametr typu TObject je p°edch∙dcem vÜech pou₧it²ch typ∙ a bylo by mo₧nΘ jeho prost°ednictvφm po₧adovanΘ parametry p°edat. N∞kterΘ procedury majφ i dalÜφ parametry r∙znΘho typu, kterΘ je mo₧nΘ v procedu°e pou₧φt. Nap°φklad udßlost KeyPress p°edßvß znak stisknutΘ klßvesy.

Jak jste si vÜimli, je jmΘno procedury odvozeno automaticky od jmΘna objektu. Pokud zm∞nφte jmΘno objektu, jsou souΦasn∞ systΘmem zm∞n∞na jmΘna procedur pro obsluhu udßlostφ. Sami vÜak musφte zajistit zm∞nit jmΘno objektu, pokud je pou₧ito p°i vyvolßnφ metody. Pokud je procedura pro obsluhu udßlosti prßzdnß, je systΘmem po spuÜt∞nφ programu automaticky zruÜena, proto₧e nevykonßvß ₧ßdnou Φinnost.

V t∞le procedury m∙₧ete pou₧φt libovolnΘ p°φkazy a funkce probranΘ v prvnφ Φßsti kurzu. Lze takΘ naprogramovat vlastnφ procedury a funkce a umφstit je do programu. Musφte si pouze zvyknout na to, ₧e program jako takov² neb∞₧φ od zaΦßtku ke konci, ale je zpracovßvßn podle okam₧iku v²skytu udßlostφ.


p°edchozφ lekce (2.07) obsah kurzu nßsledujφcφ lekce (2.09)

OZOGAN, 1 Mßje 97, 460 01 Liberec
tel.,fax: (048) 52 28 338, e-mail: info@ozogan.cz