Использование функции
var
Form1: TForm1;
implementation
{$R *.dfm}
// проверяет, является ли символ допустимым
// во время ввода дробного числа
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;
// нажатие клавиши в поле Расстояние
procedure TForm1.EditlKeyPress(Sender: TObject;
var Key: Char);
begin
if Key = Char(VK_RETURN)
then Edit2.SetFocus // переместить курсор в поле Цена
else
If not IsFloat(Key,Edit2.Text) then Key: = Chr(O);
end;
// нажатие клавиши в поле Цена
procedure TForml.Edit2KeyPress(Sender: TObject;
var Key: Char);
begin
if Key = Char(VK_RETURN)
then Edit3.SetFocus // переместить курсор в поле Потребление
else If not IsFloat(Key,Edit2.Text)
then Key: = Chr (0);
end;
// нажатие клавиши в поле Потребление
procedure TForml.Edit3KeyPress(Sender: TObject;
var Key: Char);
begin
if Key = Char(VK_RETURN)
then Buttonl.SetFocus // // сделать активной кнопку Вычислить
else If not IsFloat(Key,Edit2.Text) then Key: = Chr (0);
end;
// щелчок на кнопке Вычислить
procedure TForm1.ButtonlClick(Sender: TObject);
var
rast: real; // расстояние
cena: real; // цена
potr: real; // потребление на 100 км
summ: real; // сумма
mes: string;
begin
rast: = StrToFloat(Edit1.Text);
cena: = StrToFloat(Edit2.Text);
potr: = StrToFloat(Edit3.Text);
summ: = rast / 100 * potr * cena;
if CheckBoxl.Checked then summ: = summ * 2;
mes: = 'Поездка на дачу';
if CheckBoxl.Checked then mes: = mes + ' и обратно';
mes: = mes + 'обойдется в '
+ FloatToStrF(summ,ffGeneral,4.2) + ' руб.';
Label4.Caption: = mes;
end;
end.