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