Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
3-1128333732
Prohodil Mimo
2005-10-03 14:02
2005.11.13
Как правильно записать картинку из TImage в базу FB-1.5 ?


3-1128317628
RUYurik
2005-10-03 09:33
2005.11.13
IBReplicator


14-1130061257
alexsis
2005-10-23 13:54
2005.11.13
AVer Tv Studio 305 Плюсы и минусы


14-1130069324
Nikolay M.
2005-10-23 16:08
2005.11.13
Питьевые качества 5-летнего коньяка в алюминиевой фляжке - ?


3-1128062703
magnus
2005-09-30 10:45
2005.11.13
Кодировка БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский