Форум: "Основная";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];
ВнизВещественный тип имеет привязку к раскладке клавиатуры? Найти похожие ветки
← →
MaXie (2002-05-08 12:46) [0]Подкиньте, плз, идею, как граммотно реализовать?
Исходные данные:
- поле ввода Edit1;
- переменная вещественного типа A;
Есть событие:
procedure TForm1.Edit10Exit(Sender: TObject);
begin
A := StrToFloat(Edit1.Text)
end;
На первый взгляд, все тривиально и просто, но! Проблема возникает при смене языка (раскладки клавиатуры). С разделителем десятичных разрядов все понятно - ошибка возникает в конвертации типов.
Как сделать универсальным приложение (так, чтобы не возиться с настройкой разделителя десятичных разрядов в установках ОС)?
← →
Alx2 (2002-05-08 12:56) [1]IMHO использовать DecimalSeparator.
>ошибка возникает в конвертации типов.
Это как?
← →
MaXie (2002-05-08 13:11) [2]To Alx2:
Сообщение об ошибке приходит в момент выхода из поля ввода Edit1, в котором четко указан тип исключения в ответ на возникновение которого и выдается данное окно - EConvertError. При английской раскладке, введенное число без проблем конвертируется из текстового в вещественный тип. При смене языка, происходит смена разделителя десятичных разрядов с "," на ".", соответственно, что вызывает "непонимание" приложения того, что текст "1.01", как и текст "1,01", можно перевести в вещественное число 1,01! В данном случае, символ "." рассматривается приложением, как спец. символ, но не как разделитель дробной (десятичной) части, в итоге: текст, состоящий из цифр и спец.символа, переводу в вещественный формат числа не подлежит!
>IMHO использовать DecimalSeparator.
Можно чуть по-подробней?
← →
Alx2 (2002-05-08 13:15) [3]>Можно чуть по-подробней?
DecimalSeparator дает символ, являющийся разделителем целой и дробной частей. Можно "в лоб" посмотреть, что мы собираемся конвертировать и заменить все "." или "," на DecimalSeparator, а потом - конвертировать.
← →
Johnmen (2002-05-08 13:52) [4]Еще добавлю, что если раскладка Англ., то кнопа Del в NumPade есть "точка", а если Рус., то "запятая".
Выводы понятны... :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c