Информатика. Программирование в Delphi
147
5. Создадим процедуру
EditKeyPress
для компонента
Edit1
. Затем эту же
процедуру (
EditKeyPress
) назначим событию
OnKeyPress
для компонентов
Edit2
и
Edit3
.
6. Свойству
Tag
компонентов
Edit1
,
Edit2
,
Edit3
присвоим значения 1, 2
и 3 соответственно. Свойство
Tag
используется в процедуре
EditKeyPress
для
идентификации одного из нескольких одинаковых компонентов.
7. Оформим процедуру
EditKeyPress
Следующим образом.
//процедура обрабатывает нажатие клавиш в полях
Расстояние
,
//
Цена
и
Потребление
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
var
Edit:TEdit;
begin
//получение ссылки на объект Edit,
//в котором произошло нажатие клавиши
Edit:=Sender as TEdit;
case key of
//разрешены цифровые клавиши и забой(BackSpace)
'0'..'9',#8:;
//в качестве разделитей в числах разрешены запятая и точка,
//но они заменяются десятчным разделителем
',','.':
begin
//десятичный разделитель
Key:=DecimalSeparator;
//запрет ввода второго десятичный разделитель в поле
if pos(DecimalSeparator,Edit.Text)<>0 then
key:=#0;
end;
//нажата клавиша Enter
#13:
//идентификация компонента,
//в котором произошло нажатие клавиши
case Edit.Tag of
//поле Edit1, перенесем фокус вполе Edit2
1:Edit2.SetFocus;
//поле Edit2, перенесем фокус в поле Edit3
2:Edit3.SetFocus;
//поле Edit3, перенесем фокус на кнопку Button1
3:Button1.SetFocus;
end
//остальные клавиши запрещены
else
I...,137,138,139,140,141,142,143,144,145,146 148,149,150,151,152,153,154,155,156,157,...370