p°edchozφ lekce (2.07) | obsah kurzu | nßsledujφcφ lekce (2.09) |
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) |