Пример программы с использованием Button

  

Программа демонстрирует использование компонента Button. Программа пересчитывает расстояние из километров в версты. Расчет и отображение результата выполняет процедура обработки события Click на кнопке ОК. Следует обратить внимание что кнопка ОК доступна только в случае, если в поле редактирования находятся данные. Управляет доступностью кнопки процедура обработки события Change компонента Edit1. Процедура контролирует количество символов, которое находится в поле редактирования, и, если в поле нет ни одной цифры , присваивается значение False свойству Enable и тем самым делает кнопку недоступной. В процессе создания формы свойству Enabled кнопки надо присвоить значение False.

Расположение компонентов на форме Edit и Button

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// текст в поле редактирования изменен
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Length(Edit1.Text) = 0 then
Button1.Enabled := False
else
Button1.Enabled := True;
end;

// щелчок на кнопке OK
procedure TForm1.Button1Click(Sender: TObject);
var
km: real; // расстояние в километрах
v: real; // расстояние в верстах
begin
km := StrToFloat(Edit1.Text);
v := km / 1.0668;
Label2.Caption := Edit1.Text + ' км это - ' +
FloatToStrF(v,ffFixed,7,2) + ' верст';
end;

// нажатие клавиши в поле редактирования
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
'0'..'9', #8: ; // цифры и

'.',',':
begin
// DecimalSeparator - глобальная переменная, в которой
// находится символ "десятичный разделитель"
Key := DecimalSeparator;
if pos(DecimalSeparator,Edit1.Text) <> 0
then Key := #0;
end;
#13: Button1.SetFocus;
else Key := #0; // остальные символы не отображать
end;
end;

end.