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

Вопрос по CurrencyEdit

СообщениеДобавлено: 29.09.2014 11:20:25
GAMER
DecimalPlaces=2.

Нужно всегда получить результат в виде: 1234.00, в независимости от того, введены ли нули в дробной части и есть ли разделитель тисячных розрядов.
CurrencyEdit.DisplayText - выводит разделитель тысячных
CurrencyEdit.Text - не выводит дробные нули, если их не ввели.

Можно парсить вручную и преобразовывать как нужно, но может уже все сделано до нас? :)

Re: Вопрос по CurrencyEdit

СообщениеДобавлено: 29.09.2014 15:27:42
alexs
Этот компонент сейчас не работает правильно. Я его буду переделывать - поведение будет аналогично DBEdit с CurrencyField

Добавлено спустя 17 часов 5 минут 29 секунд:
Проверяй. Полностью переписал код.

Re: Вопрос по CurrencyEdit

СообщениеДобавлено: 30.09.2014 13:48:37
GAMER
Обновился. Ничего не изменилось. Как правильно использовать?

Плюс такой вопрос.
Нужно как-то различать пустое значение и нулевое. То есть, если ничего не ввел, то это типа null, а если 0, то это 0.00 например.

И еще.

Может для NumbersOnly разрешить точку и минус?

Добавлено спустя 16 минут 26 секунд:
Как правильно использовать?
DisplayFormat:='0.00'; - помог. В старой версии не проверял.

Добавлено спустя 7 минут 49 секунд:
Но, каждый раз увязывать DisplayFormat с DecimalPlaces, как то не очень.

Re: Вопрос по CurrencyEdit

СообщениеДобавлено: 30.09.2014 14:53:45
alexs
Надо будет ещё доработать свойство - ZeroEmpty.
Оно не доделано ещё.
Оно поможет.
Также можно посмотреть свойство EditText.

Re: Вопрос по CurrencyEdit

СообщениеДобавлено: 30.09.2014 15:50:21
GAMER
UFrmOsn.pas(717,30) Error: identifier idents no member "EditText"

Re: Вопрос по CurrencyEdit

СообщениеДобавлено: 07.10.2014 17:43:07
GAMER
Вижу, что были изменения, но не вижу, как решить заданый вопрос.

Re: Вопрос по CurrencyEdit

СообщениеДобавлено: 08.10.2014 16:57:04
alexs
В текущей реализации - пустой строки не будет. В случае пустой строки - будет 0.

Re: Вопрос по CurrencyEdit

СообщениеДобавлено: 08.10.2014 21:28:34
GAMER
Ок. Буду ждать новую реализацию.
Еще вопросик. Как получить введенный текст при нажатии на "Ентер"?
Код: Выделить всё
procedure TFrmOsn.CurrencyEditEBalKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
Var s,r:String;
begin
s:=CurrencyEditEBal.DisplayText;
if Key=VK_RETURN then
begin
  r:=CurrencyEditEBal.DisplayText;
end;
end; 

Обе переменные получают в результете '0.00'

Re: Вопрос по CurrencyEdit

СообщениеДобавлено: 09.10.2014 09:25:06
alexs
GAMER писал(а):r:=CurrencyEditEBal.DisplayText;

Исправил отображение значения в свойстве DisplayText во время редактирования данных

Re: Вопрос по CurrencyEdit

СообщениеДобавлено: 09.10.2014 12:43:39
GAMER
Спасибо. Работает.

Re: Вопрос по CurrencyEdit

СообщениеДобавлено: 22.10.2014 21:48:20
GAMER
Обновился. Стало работать так как нужно. Пока :)
В чем разница между DisplayText и Text? Text что-то глючит.