Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

Форматирование вычисляемого поля   Найти похожие ветки 

 
koks   (2005-10-20 12:04) [0]

Уважаемые мастера, подскажите

Мне надо чтобы вычисляемое float-поле форматировалось так:

значение  DisplayText  
35,28      + 35,28%
-35,28     - 35,28%
0          0

пишу в DisplayFormat:

"+"### ### ##0.00"%";"-"### ### ##0"%".00;0

однако все отображается неправильно.

Подскажите - как правильно.


 
Baltika-9   (2005-10-20 12:06) [1]

См. пример к функции FormatFloat.


 
koks   (2005-10-20 12:08) [2]

Смотрел - не помогло.... заклинило


 
Baltika-9   (2005-10-20 12:15) [3]

DisplayFormat := "#,##0.00%";


 
koks   (2005-10-20 15:21) [4]

Ну нет - не такой уж я начинающий, но все равно переклинило...

Во-первых, подсказка не верна. Правильно - # ##0.00"%";
Во-вторых, мне нужно:
1. Чтобы в положительных значениях печатался знак ("+35,28%")
2. Чтобы 0 отображался "0" а не "0.00%";

Вот те в чем загвоздка.


 
evvcom ©   (2005-10-20 15:37) [5]

Тогда в TField.OnGetText обрабатывай.


 
koks   (2005-10-20 15:45) [6]

Ну да, еще можно вычисляемые поля определить как стринг. В обработчике OnCalc вычислять вещественное число и дополнительной операцией делать FormatFloat.
Варианты есть.

Но я хочу понять, почему не работает стандартный подход. Ведь в хелпе ясно написано: в DisplayFormat может быть три секции, разделенные ;
Одна для положительных чисел, вторая для отрицательных и третья для 0.
Для каждых 3-х вариантов можно задавать свой формат. Это-то мне и надо.
Я записал строку  - не могу понять где ошибка.


 
evvcom ©   (2005-10-20 15:56) [7]


> Во-первых, подсказка не верна. Правильно - # ##0.00"%";

С чего ты это взял? Из хелпа: ", Thousand separator."


 
koks   (2005-10-20 16:00) [8]

Thousand separator берется из того, что установлено в системе в региональных настройках. Лично у меня там стоит пробел.
А напрвильно в подсказке расположение кавычек.


 
koks   (2005-10-20 16:04) [9]

Хотя запятая тоже проканывает. Выходит можно и так и так.


 
koks   (2005-10-20 16:07) [10]

Ура!!! Понял в чем ошибка - если в оригинальной строке (первый пост) заменить пробел на запятую все работает!!

Да видать и впрямь я начинающий

Всем сспасиба...


 
evvcom ©   (2005-10-20 16:22) [11]


> Thousand separator берется из того, что установлено в системе
> в региональных настройках.

Это при вводе/выводе функций XxxToStr/StrToXxx и пр. А для DisplayFormat явно написано, что ",", и ни слова про региональные настройки.



Страницы: 1 вся ветка

Текущий архив: 2005.11.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
14-1129731129
oldman
2005-10-19 18:12
2005.11.13
Вот такая вот задачка по физике :)))


14-1129729148
oldman
2005-10-19 17:39
2005.11.13
Это форум глючит, или мой комп?


2-1129991572
MakedoneZ
2005-10-22 18:32
2005.11.13
Изменение типа указателя.


4-1125673317
Суслик
2005-09-02 19:01
2005.11.13
Вопрос про GetDC


2-1129785588
V-A-V
2005-10-20 09:19
2005.11.13
Где я не прав в запросе?