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) |