Оголошення функції в загальному вигляді виглядає так:
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;