Оголошення функції

Оголошення функції в загальному вигляді виглядає так:

function Ім'я (параметр1 : Тип1, ..., параметрК: тіпК): Тип; var
// тут оголошення локальних змінних begin
// тут інструкції функції
Ім'я : = Вираз; end;

де:

  • function – зарезервоване слово мови Delphi, що означає, що далі йдуть інструкції, що реалізують функцію програміста;
  • ім’я – ім’я функції. використовується для переходу з програми до інструкцій функції;
  • параметр – це змінна, значення якої використовується для обчислення значення функції. Відмінність параметра від звичайної змінної полягає в тому, що він оголошується не в розділі оголошення змінних, який починається словом var, а в заголовку функції. конкретне значення параметр отримує під час роботи програми в результаті виклику функції з основної програми;
  • тип – тип значення, яке функція повертає в викликала її програму.

Слід звернути увагу, що послідовність інструкцій, що реалізують функцію, завершується інструкцією, яка присвоює значення імені функції. Тип виразу, що визначає значення функції, повинен збігатися з типом функції, зазначеним в її оголошенні.
Як приклад в лістингу 6.3 наведені функції isint і isFioat. Функція isint перевіряє, є Чи символ, що відповідає клавіші, утримуючи під час введення цілого числа в полі редагування, допустимим. Передбачається, що допустимими є цифри, клавіші і . Функція IsFloat вирішує аналогічну завдання, але для дрібного числа. У функції IsFloat два параметри: код клавіші клавіші і рядок символів, яка вже введена в поле редагування.

Лістинг 6.3. приклади функцій

// перевіряє, чи є символ допустимим
// під час введення цілого числа
function Islnt (ch: char): Boolean;
begin
if (ch > = '0'} and (ch < = '9') // цифри
or (ch = 113) // клавіша "Enter "
or (ch = # 8) // клавіша "Backspace"
then Islnt: = True // символ допустимо

else Islnt: = False; // неприпустимий символ
end;
// перевіряє, чи є символ допустимим
// під час введення дробового числа
function IsFloat (ch: char; st: string) : Boolean;
begin
if (ch > = '0') and (ch < = '9') // цифри
or (ch = # 13) // клавіша "Enter"
or (ch = # 8) // клавіша "Backspace"
then
begin
IsFloat : = True; // символ вірний

Exit; // вихід з функції
end;

case ch of
'-': if Length (st) = 0

then IsFloat: = True; ',':

if (Pos ( ',', st) = 0)
and (st [Length (st)] '> =' 0 ') and (st [Length (st)] < =' 9 ')
then // роздільник можна ввести тільки після цифри // і якщо він ще не введений
IsFloat : = True; else // інші символи заборонені
IsFloat : = False;

end;

end;