Процедуры
Структура процедуры аналогична структуре основной программы:
procedure имя [(список параметров)]; { заголовок }
разделы описаний
begin
раздел операторов
end;
БИЛЕТ 7
1)Конструирование модуля для делфи-приложения
Создание модуля
Delphi позволяет программисту поместить свои функции и процедуры в отдельный модуль, а затем использовать процедуры и функции модуля в своих программах, указав имя модуля в списке модулей, необходимых программе (инструкция uses).
Чтобы приступить к созданию модуля, нужно сначала закрыть окно формы и окно модуля формы (в ответ на вопрос о необходимости сохранения модуля следует выбрать No, т. е. модуль, соответствующий закрытой форме, сохранять не надо). Затем из меню File нужно выбрать команду New | Unit. В результате открывается окно редактора кода, в котором находится сформированный Delphi шаблон модуля. Его текст приведен в листинге 6.7.
Листинг 6.7. Шаблон модуля
1.unit Unitl;
2.interface
3.implementation
4.end.
Начинается модуль заголовком — инструкцией unit, в которой указано имя модуля. Во время сохранения модуля это имя будет автоматически заменено на имя, указанное программистом.
Слово interface отмечает раздел интерфейса модуля. В этот раздел программист должен поместить объявления находящихся в модуле процедур и функций, которые могут быть вызваны из других модулей, использующих данный.
В раздел implementation (реализация) нужно поместить процедуры и функции, объявленные в разделе interface. В качестве примера в листинге 6.8 приведен модуль программиста, который содержит рассмотренные ранее функции isint и IsFloat.
Листинг 6.8. Модуль программиста
01.unit myjunit;
02.interface // объявления процедур и функции,
03.// доступных программам,
04.// использующим этот модуль
05.function Islnt(ch : char) : Boolean;
06.// функция Islnt проверяет, является ли символ
07.// допустимым во время ввода целого числа
08.function IsFloat(ch : char; st: string) : Boolean;
09.// Функция IsFloat проверяет, является ли символ допустимым
10.// во время ввода дробного числа
11.// ей — очередной символ
12.// st — уже введенные символы
13.implementation // реализация
14.// проверяет, является ли символ допустимым
15.
16.// во время ввода целого числа
17.function Islnt(ch : char] : Boolean;
18.begin
19.if [ch >= ' 0 ' ) and (ch <= ' 9 ' ] // цифры
20.or (ch = #13) // клавиша <enter></enter>
21.or (ch = #8) // клавиша
22.then Islnt := True // символ допустим
23.else Islnt := False; // недопустимый символ
24.end; // проверяет, является ли символ допустимым
25.
26.// во время ввода дробного числа
27.function IsFloat (ch : char; st -. string) : Boolean;
28.// ch — очередной символ
29.// at — уже введенные символы
30.begin
31.if (ch >= '0') and (ch <= ' 9 ' ) // цифры
32.or (ch = #13) // клавиша <enter></enter>
33.or (ch = #8) // клавиша <bacspace></bacspace>
34.then
35.begin
36.IsFloat := True; // символ верный
37.Exit; // выход из функции
38.end;
39.case ch of
40.'-': if Length(st) = 0 then IsFloat :- True;
41.',': if (Pos(',',st) = 0)
42.and (stfLength(st)] >= ' 0 ' )
43.and (st[Length(st)] <= ' 9 ' )
44.then // разделитель можно ввести только после цифры
45.// и если он еще не введен
46.IsFloat := True;
47.else // остальные символы запрещены
48.IsFloat := False;
49.end;
50.// это раздел инициализации
51.// он а данном случае не содержит инструкция
52.end.
Сохраняется модуль обычным образом, т. е. выбором из меню File команды Save, Вместе с тем, для модулей повторно используемых процедур и функций лучше создать отдельную папку, нажав ее, например, Units.
