Создание модуля
Delphi позволяет программисту поместить свои функции и процедуры в отдельный модуль, а затем использовать процедуры и функции модуля в своих программах, указав имя модуля в списке модулей, необходимых программе (инструкция uses).
Чтобы приступить к созданию модуля, нужно сначала закрыть окно формы и окно модуля формы (в ответ на вопрос о необходимости сохранения модуля следует выбрать No, т. е. модуль, соответствующий закрытой форме, сохранять не надо). Затем из меню File нужно выбрать команду New › Unit. В результате открывается окно редактора кода, в котором находится сформированный Delphi шаблон модуля. Его текст приведен в листинге 6.7.
Листинг 6.7. Шаблон модуля.
unit Unit1; interface implementation end.
Начинается модуль заголовком – инструкцией unit, в которой указано имя модуля. Во время сохранения модуля это имя будет автоматически заменено на имя, указанное программистом.
Слово interface отмечает раздел интерфейса модуля. В этот раздел программист должен поместить объявления находящихся в модуле процедур и функций, которые могут быть вызваны из других модулей, использующих данный.
В раздел implementation (реализация) нужно поместить процедуры и функции, объявленные в разделе interface.
В качестве примера в листинге 6.8 приведен модуль программиста, который содержит рассмотренные ранее функции IsInt и isFioat.
Листинг 6.8. Модуль программиста.
unit my__ unit; interface // объявления процедур и функций, // доступных программам, // использующим этот модуль function IsInt(ch: char): Boolean; // функция Islnt проверяет, является ли символ // допустимым во время ввода целого числа function IsFloat(ch: char; st: string): Boolean; // Функция IsFloat проверяет, является ли символ допустимым // во время ввода дробного числа // ch – очередной символ // st – уже введенные символы implementation // реализация // проверяет, является ли символ допустимым // во время ввода целого числа function Islnt(ch: char): Boolean; begin if (ch >= '0') and (ch <= '9') // цифры or (ch = #13) // клавиша Enter or (ch = #8) // клавиша <Backspace> then Islnt: = True // символ допустим else Islnt: = False; // недопустимый символ end; // проверяет, является ли символ допустимым // во время ввода дробного числа function IsFloat(ch: char; st: string): Boolean; // ch – очередной символ // st – уже введенные символы 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.
Сохраняется модуль обычным образом, т. е. выбором из меню File команды Save. Вместе с тем, для модулей повторно используемых процедур и функций лучше создать отдельную папку, назвав ее, например, Units.