24 февраля 2021

Новый VCL-контрол TNumberBox в Delphi 10.4.2

    Как было анонсировано в прошлом году, в Delphi 10.4.2 добавлены новые VCL-контролы. С учетом того, что разработчики RAD Studio нас не часто балуют подобным, это заслуживает внимания. О виртуальном listview в стиле DBCtrlGrid – TControlList, я уже писал. Сейчас я расскажу о новом контроле для вода числовых значений – TNumberBox.
    TNumberBox – это элемент управления для ввода числовых значений трех видов: целых чисел, чисел с плавающей запятой и значений валют. Разработан он по образцу NumberBox из библиотеки пользовательского интерфейса Windows (WinUI). Выглядит контрол действительно неплохо, а множество настроек позволит настроить его под различные требования.
Delphi 10.4.2 TNumberBox
На диалоге вы видите, как меняется внешний вид TNumberBox в зависимости от настроек формата числа (nbmInteger, nbmFloat и nbmFloat) и варианта кнопок редактора (nbspNone, nbspCompact и nbspInline).
    Особо хочется отметить понравившееся мне свойство "AcceptExpressions". Если его установить в True, то TNumberBox получает возможность вычислять простые арифметические выражения. Этот "калькулятор" поддерживает сложение, вычитание, умножение и деление (с возможностью использовать скобки). Если на диалоге в нижнем TNumberBox нажать Enter или перевести фокус на другой контрол, то выражение "((123 - 3) / 2 + 4 * 5) + 43" будет вычислено и заменено на его результат. При этом доступ к тексту выражения и его значению можно получить из кода программы.
Delphi 10.4.2 TNumberBox.AcceptExpressions := True
    Более подробно о TControlList, TControlListButton (аналог TSpeedButton, который можно использовать с TControlList) и TNumberBox можно почитать у Марко Канту.

Комментариев нет:

Отправить комментарий