//8 и 46 код клавиш Backspace и Del

begin

KeyChar:= #0;

if (Length (Edit1.Text)> =11) = false then

ShowMessage («Допускаются только цифры!»)

else

ShowMessage («Длина текста превысила 11 знаков!»)

endend;

Или:

procedure TForm1.Edit1KeyPress (Sender: TObject; var Key: Char);

begin

case Key of

«0».. «9», #8:; // цифры и 

// Замена точки или запятую десятичной дроби на правильный разделитель – DecimalSeparator

«.»,»,»

begin

Key:= FormatSettings.DecimalSeparator;

//проверка правильности разделителя

if pos (Key, Edit1.Text) <> 0

then Key:= #0;

end;

#13: Edit2.SetFocus; // переместиться в поле Edit

else Key:= #0; // Остальные символы запрещены

end;

Проще, однако, установить фильтр ввода данных:

Edit1.FilterChar:= «0123456789»;

Или: keyPress: if key = VK_Eskape (Enter) then

Или на Edit1KeyPress:if Key=»,» then Key:=».»;//Замена на лету


Ограничить ввод можно свойством ReadOnly, а также свой ствами Enabled и CanFocus; CheckSpelling – контроль правописания.

Задействовав свойство Password (true), можно заменить входящий текст видимыми точками, сделав компонент для ввода пароля.

Выделить часть текста можно:

Edit1.SetFocus; Edit1.SelStart:= 1; Edit1.SelLength:= 1;

С компонентом можно также связать Кнопки, щелкнув по нему правой кнопкой мыши и выбрав в Item Editor, например, кнопку очистки.

ComboEdit представляет собой строку редактирования, комбинированную с кнопкой, аналогично тому, как объединен редактор текста и кнопка выпадающего списка в стандартном элементе ComboBox.


NumberBox.

Для ввода непосредственно чисел не нужно использовать преобразования IntToStr (n), существуют специальные компоненты для ввода чисел (тип Single): NumberBox и SpinBox со свойством Value, при этом для отображения в качестве текста имеется свое свойство:

Label1.Text:= NumberBox1.Text;

Label1.Text:= SpinBox1.Text;

Также следует определить ValueType (Integer/Float) в Object Inspector (однако, при выборе Integer преобразование IntToStr все равно не действует без дополнительного Round). DecimalDigits отображает число десятичных знаков. Свойства HorzIncrement и VertIncrement: шаг приращения. Свойство Value компонента относится к Single, но даже выставив X как Integer в Object Insoector придется изменять тип: y:= round (x).


Рис. 20. Добавление в компонент Edit других компонентов.


SpinBox

SpinBox – окно редактирования, может отображать только число, с кнопками для увеличения и уменшения отображаемого значения.


ComboTrackBar

У ComboTrackBar – cвойства те же, и отображение каретки для ComboTrackBar (свойства Visible и CanShow) и режим выпадающего списка.


ComboEdit

Строка редактирования, комбирированная с кнопкой выпадающего списка (DropDownCount), с возможностью ввода строк текста (свойство Items). ComboEdit1.Items.Add (String) добавляет строчку; можно добавить строчку и цифру: ComboEdit1.Items.AddPair (String: String, Value: String).


TdateEdit, TtimeEdit, TCalendar

Позволяют в вид диалога выбрать дату, время. Строка ввода при получении фокуса отображает диалог выбора, результат передается в свойство DateTime (вместе или раздельно).

8.3. КОМПОНЕНТ СПИСОК – ListBox

Компонент ListBox представляет собой Список элементов. Свойства: Count – число элементов списка; Items – массив строк списка; ItemIndex – номер элемента в списке (-1 если ничего не выбрано); text – все содержимое компонента; Sorted – сортировка элементов.

В свойстве items нажав на три точки (…) можно открыть String List Editor и заполнить список (начинается с 0).

Добавить элемент списка можно командой:

ListBox.Items.Add («Вводимый текст»);

причем можно вставить и объект: