Объявление функции
Объявление функции в общем виде выглядит так:
function Имя (параметр1 : тип1, ..., параметрК : типК) : Тип; var// здесь объявления локальных переменных begin
// здесь инструкции функции
Имя := Выражение; end;
где:
- function — зарезервированное
слово языка Delphi, обозначающее, что далее следуют инструкции, реализующие
функцию программиста;
- имя — имя функции. Используется
для перехода из программы к инструкциям функции;
- параметр — это переменная, значение
которой используется для вычисления значения функции. Отличие параметра от
обычной переменной состоит в том, что он объявляется не в разделе объявления
переменных, который начинается словом var, а в заголовке функции. Конкретное
значение параметр получает во время работы программы в результате вызова функции
из основной программы;
- тип — тип значения, которое
функция возвращает в вызвавшую ее программу.
В качестве примера в листинге 6.3 приведены функции isint и isFioat. Функция isint проверяет, является ли символ, соответствующий клавише, нажатой во время ввода целого числа в поле редактирования, допустимым. Предполагается, что допустимыми являются цифры, клавиши <Enter> и <Backspace>. Функция 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;