Программа демонстрирует использование компонента Edit для ввода данных различного типа. Программа спроектирована таким образом, что в режиме ввода текста в поле редактирования можно ввести любой символ, в режиме ввода целого числа — только цифры и знак «-» (если это первый символ). В режиме ввода дробного числа кроме цифр и знака «-» в поле компонента можно ввести символ-разделитель (запятую или точку, в зависимости от настройки операционной системы).
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 | // клавиша нажата в поле "Текст" procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if key = #13 // клавиша <Enter> then Edit2.SetFocus; // переместить курсор в поле Edit2 end; // клавиша нажата в поле "Целое число" procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9', #8: ; // цифры и <Backspace> #13: Edit3.SetFocus; // <Enter> - переместить курсор в поле Edit3 '-': if Length(Edit2.Text) <> 0 then Key := #0; else Key := #0; // остальные символы не отображать end; end; // клавиша нажата в поле "Дробное число" procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9', #8: ; // цифры и <Backspace> '.',',': begin { Сначала замени точку и запятую на символ DecimalSeparator, затем проверим, есть ли десятичный разделитель в поле редактирования } Key := DecimalSeparator; if pos(DecimalSeparator,Edit3.Text) <> 0 then Key := #0; end; '-': if Length(Edit3.Text) <> 0 then Key := #0; else Key := #0; // остальные символы не отображать end; end; |