FormatFloat в Livebinding

В момента се опитвам да използвам XE5 livebindings, за да обвържа свойство TTrackBar.Value към свойство TLabel.text. TrackBar има frequency от 0,1. За съжаление, това, което откривам, е, че с обвързването на място, етикетът показва увеличения, които не са точно 0,1.

Например, ако задам свойството „CustomFormat“ на livebinding връзките на %s+'x', етикетът понякога ще показва разширената плаваща стойност, така че вместо да кажем да показва 0,6, ще показва нещо като 0,6004874613100, което прави потребителския интерфейс да изглежда объркан.

Знам за рутината FormatFloat, но за съжаление това не се приема от полето CustomFormat в самата връзка.

Има ли някакъв начин да форматирате стойността, така че да показва само кратката версия (т.е. 0.6) вместо разширената стойност? Знам, че мога да го кодирам ръчно, но имам няколко компонента в подобна ситуация и бих искал да използвам livebindings, където е възможно.


person Scott P    schedule 11.02.2014    source източник
comment
Използването на непредставими стойности с плаваща запетая няма ли да доведе до натрупване на грешки при закръгляване?   -  person David Heffernan    schedule 12.02.2014


Отговори (1)


Можете да използвате нещо като Format('%%.1f',%s) Вижте отговора на Mike Sutton тук на SO: Използване на формат в персонализиран формат на livebindings

person AndreaMagni    schedule 12.02.2014