Страница 1 из 1

Ввод числа с произвольной точностью

Добавлено: 16 Апрель 2022, 14:48
Игорь Столяров
Привет всем !

Есть странная задача. Но она есть. :(
Нужно вводить (и отображать) число в поле SPIN с произвольной точностью.

- Вводим 1 отображаем 1
- Вводим 1.23 отображаем 1.23
- Вводим 1.234 отображаем 1.234
и т.д.

Ничего умней, чем сделать переменную REAL и задать шаблон ввода @S15 - я не придумал.
И в общем-то всё хорошо, вот только отсутствие значения отображается как "0" и это нельзя подавить. :(
Или можно ?

Не предлагать пожалуйста варианты:
1. Шаблон ввода @S15B - ошибки нет, но и не работает.
2. Обработки - не работают:

Код: Выделить всё

    If Loc:MyField = 0 then ?Loc:MyField{Prop:Value} = ''.
    If Loc:MyField = 0 then Erase(?Loc:MyField).
Есть идеи как это сделать ? Заранее спасибо ! :)

Ввод числа с произвольной точностью

Добавлено: 16 Апрель 2022, 17:12
VWV
Я использую переменные тип CSTRING() и picture поля @Sn.
Проверяю аля: IF Var AND NOT NUMERIC(Var) THEN SELECT(?Var); CYCLE.
DecimalKey обрабатывается как обычно.
Пусто не светится как 0, а ноль видно. Можно вводить даже 0.0
Для вычислений переприсваиваю loc:Var = Var и работаю с loc:Var, где loc:Var REAL

Ввод числа с произвольной точностью

Добавлено: 16 Апрель 2022, 17:42
kreator
Помнится мне, делал поле не Real, а String. Обработка в этом случае работает. Могу поискать в анналах.

Ввод числа с произвольной точностью

Добавлено: 16 Апрель 2022, 22:57
Игорь Столяров
VWV писал(а): 16 Апрель 2022, 17:12 Я использую переменную CSRING и picture @S.
Спасибо ! Работает. :)
Это немного не то, что я бы хотел - но видимо других вариантов нет ...