//8 и 46 код клавиш Backspace и Del
begin
KeyChar:= #0;
if (Length (Edit1.Text)> =11) = false then
ShowMessage («Допускаются только цифры!»)
else
ShowMessage («Длина текста превысила 11 знаков!»)
end; end;
Или:
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; //
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 («Вводимый текст»);
причем можно вставить и объект: