Procedury a funkce se ve vnit°nφm programovacφm jazyce volajφ zßpisem ve tvaru:
identifikßtor_procedury_nebo_funkce ( parametr, parametr, ... parametr)
Parametry musφ po °ad∞ odpovφdat formßlnφm parametr∙m uveden²m v deklaraci procedury resp. funkce. Pokud se p°edßvajφ odkazem, pak skuteΦn²m parametrem musφ b²t prom∞nnß tΘho₧ typu, jako formßlnφ parametr. Pokud se p°edßvajφ hodnotou, pak skuteΦn²m parametrem smφ b²t v²raz, jeho₧ hodnota se dß p°i°adit do formßlnφho parametru podle pravidel pro p°i°azovßnφ.
Volßnφ procedury je p°φkazem. Volßnφ funkce lze pou₧φt bu∩ jako p°φkaz (pak se hodnota funkce ignoruje) nebo jako operand ve v²razu.
P°φklad:
funkce (z aplikace Knihovna) je deklarovßna takto:
function BookTest(who : short) : boolean; {**************************************}
// ov∞°φ, nemß-li ruÜen² Φtenß° vyp∙jΦenΘ n∞jakΘ knihy (z proc DeleteReader)
var ct : cursor; ss : string[100]; cntt : integer; begin BookTest := true; ss := 'select * from KNIHY where (VYRAZENA = false) and (KDO = '+Int2str(who)+')'; if not Open_sql_cursor(ct,ss) then begin Rec_cnt(ct, cntt); if cntt = 0 then BookTest := false; Close_cursor(ct); end else Signalize; end;
Funkce se volß z programu nap°. takto:
...
if BookTest(lidi[rec].cislo) then Info_box('Nelze','Tento Φtenß° dosud nevrßtil vÜechny knihy!!')
else begin ...
Viz takΘ: