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

  

Программа демонстрирует использование компонента Edit для ввода данных различного типа. Программа спроектирована таким образом, что в режиме ввода текста в поле редактирования можно ввести любой символ, в режиме ввода целого числа — только цифры и знак «-» (если это первый символ). В режиме ввода дробного числа кроме цифр и знака «-» в поле компонента можно ввести символ-разделитель (запятую или точку, в зависимости от настройки операционной системы).

Пример расположения компонентов 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;