NumbersOnly свойство управления TEdit - PullRequest
0 голосов
/ 22 июня 2019

Из документации не ясно, позволяет ли свойство NumbersOnly, установленное в "true", вводить числа с десятичным разделителем. В своем небольшом тесте я пришел к выводу, что разрешены только целые числа, но я не уверен в этом и ищу подтверждение.

1 Ответ

2 голосов
/ 22 июня 2019

Свойство NumbersOnly устанавливает / очищает стиль ES_NUMBER на дескрипторе HWND редактора:

Позволяет вводить только цифры в элемент управления для редактирования. Обратите внимание, что даже с этим набором все еще можно вставлять нецифровые символы в элемент управления редактирования.

Так что нет, пользователь не может ввести десятичный разделитель, но пользователь может скопировать / вставить один в поле редактирования.

Если вы хотите, чтобы пользователь мог ввести десятичный разделитель, не устанавливайте для NumbersOnly значение true, вместо этого используйте события OnKey(Down|Up|Press), чтобы отфильтровать нежелательные нажатия клавиш вручную при необходимости.

В противном случае найдите сторонний элемент управления Edit, который изначально поддерживает ввод десятичных чисел. Многие популярные комплекты компонентов VCL (TMS, DevExpress и т. Д.) Имеют пользовательские элементы управления Edit с большим количеством функций, чем предусмотрено в стандарте TEdit.

...