что касается чисто отображения можно сделать немного по-другому, используя динамические тексты для текстового поля:
создать динамический лист для переменной вида:
id текст
0 - %d //отображение без цифр после запятой
1 - %.1f // с одним знаком после запятой
2 - %.2f // 2
3 - %.3f // 3
и т.д.
Только потребуется присвоить для каждого текстового поля переменную с типом отображения и добавить некоторый обработчик в код программы - условия выбора того или иного отображения.
Что касается появления некоторого 'приращения' у значения, это связано с кодированием типа REAL, также сталкивался с подобным.
Собс-но с этим же связаны трудности сравнения переменных REAL на равенство, рекомендуется (кажется это было у OSCAT) сравнивать через некотрую дельту, а не в лоб.
Т.е. код ниже не корректен, т.к. возможны отличия в последних значащих знаках и условие никогда не выполнится (при этом при отладке может казаться что все ок, будет отображаться как будто два одинаковых числа)
rTmp1 :REAL;
rTmp2 :REAL;
IF rTmp1 = rTmp2 <...>
Соот-но рекомендуется в этом случае сравнивать таким образом
IF ABS(rTmp1 - rTmp2) < 0000.1 <...> // дельта в зависимости от требуемой точности




Ответить с цитированием