Вопрос по CurrencyEdit

Модераторы: alexs, Модераторы

Ответить
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Вопрос по CurrencyEdit

Сообщение GAMER »

DecimalPlaces=2.

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

Можно парсить вручную и преобразовывать как нужно, но может уже все сделано до нас? :)
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Этот компонент сейчас не работает правильно. Я его буду переделывать - поведение будет аналогично DBEdit с CurrencyField

Добавлено спустя 17 часов 5 минут 29 секунд:
Проверяй. Полностью переписал код.
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

Обновился. Ничего не изменилось. Как правильно использовать?

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

И еще.

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

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

Добавлено спустя 7 минут 49 секунд:
Но, каждый раз увязывать DisplayFormat с DecimalPlaces, как то не очень.
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Надо будет ещё доработать свойство - ZeroEmpty.
Оно не доделано ещё.
Оно поможет.
Также можно посмотреть свойство EditText.
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

UFrmOsn.pas(717,30) Error: identifier idents no member "EditText"
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

Вижу, что были изменения, но не вижу, как решить заданый вопрос.
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

В текущей реализации - пустой строки не будет. В случае пустой строки - будет 0.
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение 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'
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

GAMER писал(а):r:=CurrencyEditEBal.DisplayText;

Исправил отображение значения в свойстве DisplayText во время редактирования данных
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

Спасибо. Работает.
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

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