Читайте также:
|
|
unit my__unit;
interface // объявления процедур и функций,
// доступных программам,
// использующим этот модуль
function IsInt(ch: char): Boolean;
// функция IsInt проверяет, является ли символ
// допустимым во время ввода целого числа
function IsFloat(ch: char; st: string): Boolean;
// Функция IsFloat проверяет, является ли символ допустимым
// во время ввода дробного числа
// ch — очередной символ
// st — уже введенные символы
implementation // реализация функций IsInt и IsFloat
function IsInt(ch: char): Boolean;
Begin
if (ch >= '0') and (ch <= '9') // цифры
or (ch = #13) // клавиша <Enter>
or (ch = #8) // клавиша <Backspace>
then IsInt:= True // символ допустим
else IsInt:= 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;
Casech 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.
Использование модуля
Для того чтобы в программе могли применяться функции и процедуры модуля, программист должен добавить этот модуль к проекту и указать имя модуля в списке используемых модулей (обычно имя модуля программиста помещают в конец сформированного Delphi списка используемых модулей).
В листинге 6.9 приведен вариант программы Поездка на дачу. Процедура обработки события onKeyPress в полях ввода исходных данных обращается к функции IsFloat, которая находится в модуле my_unit.pas, поэтому в списке используемых модулей указано имя модуля my_unit.
Листинг 6.9. Использование функции из модуля программиста
unit fazenda_;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms, Dialogs, StdCtrls,
my_unit; // модуль программиста
Type
TForm1 = class(TForm)
Edit1: TEdit; // расстояние
Edit2: TEdit; // цена литра бензина
Edit3: TEdit; // потребление бензина на 100 км
CheckBox1: TCheckBox; // True — поездка туда и обратно
Button1: TButton; // кнопка Вычислить
Label4: TLabel; // поле вывода результата расчета
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
private { Private declarations}
public { Public declarations }
end;
Var
Form1: TForm1;
Дата добавления: 2015-02-16; просмотров: 74 | Поможем написать вашу работу | Нарушение авторских прав |