Статьи Королевства Дельфи

       

FloatSpinEdit. Компонент для ввода целых и дробных чисел


Раздел Сокровищница

В своих приложениях часто сталкиваюсь с необходимостью обеспечить удобный ввод дробных чисел. Для этого разработал компонент TFloatSpinEdit. Более чем уверен что подобных компонент разработано немало, но в силу лени и прочего, не искал оного в Internet, а написал своё.

Компонент FloatSpinEdit предназначен для ввода чисел целых и дробных чисел.

Вводить число можно как непосредственно с клавиатуры в поле ввода, так и увеличивая/уменьшая его значение при помощи компонента типа TUpDown или клавиш Up/Down. Кроме этого осуществляется контроль допустимого диапазона вводимого числа и корректности ввода. Существует так же возможность отображения суффикса (например "А/м"), после числа.

Компонент представляет собой контейнер (TWinControl), содержащий два компонента FEdit(TFloatEdit - потомок TEdit) и FUpDown(TUpDown)."

В компоненте введены следующие новые свойства, доступные как на стадии разработки, так и на стадии выполнения:

  • UpDownPosition - определяет положение компонента FUpDown относительно, компонента FEdit (слева/справа), значение по умолчанию справа;
  • Precision(0..15) - определяет отображаемое количество значащих цифр, введённого числа Значение по умолчанию равно 2;
  • Sufix(string) - строка длинною не более 20 символов, определяющая суффикс (например "см") выводимый после введённого числа через пробел. По умолчанию - пустая строка;
  • Min(Extended) - определяет минимально допустимое значение вводимого числа. По умолчанию равно 100;
  • Max(Extended) - определяет максимально допустимое значение вводимого числа. По умолчанию равно -100;
  • Step(Extended) - определяет шаг изменения значения вводимого числа, при изменении его значения посредством клавиш Up/Down или компонента UpDown. По умолчанию равно 0.25;
  • NumberValue(Extended) - определяет значение введённого числа, если введеноn некорректное число, свойство принимает значение DefNumberValue;
  • DefNumberValue(Extended) - определяет значение числа, при вводе некорректного значения. По умолчанию равно 0;
  • ArrowKeys(Boolean) - определяет можно ли использовать клавиши Up/Down для изменения значения вводимого числа. По умолчанию True;
  • CheckOnExit(Boolean) - определяет, будет ли контролироваться значение введённого числа, при потере компонентом фокуса.
Контроль допустимого диапазона введённого значения осуществляется, следующим образом. Если введено некорректное значение (например "0..2."), то значение числа будет равным свойству DefNumberValue, если значение больше Max, то оно устанавливается равным Max, если значене менее Min, то то оно устанавливается равным Min. Контролируемое значение числа можно получить, прочитав свойство NumberValue или обратившись к методу DefineValue.
В определенных случаях будет так же проконтролировано символьное представление числа в свойстве Text, после чего свойство Text будет отформатировано в соответствии со свойствами Precision и Sufix:
  • изменение значения вводимого числа клавишами Up/Down или посредством компонента FUpDown;
  • при потере компонентом фокуса (событие OnExit), если задан флаг CheckOnExit;
Более подробное описание в прилагаемом файле FloatSpinEdit.txt.

Скачать (35 К)




Содержание раздела