Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.20;
Скачать: CL | DM;

Вниз

Вещественный тип имеет привязку к раскладке клавиатуры?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
3-64560
Мишган
2002-04-24 15:27
2002.05.20
dbiRegenIndexes


14-64813
MJH
2002-04-05 18:16
2002.05.20
Владельцам Vortex2 посвящается...


1-64728
AVeR
2002-05-04 07:31
2002.05.20
Получить имя файла из полного пути


4-64876
Дмитрий_Россиев
2002-03-19 15:02
2002.05.20
Как скрыть заголовок и рамку постороннего окна?


1-64748
gera-killer
2002-05-07 12:24
2002.05.20
Помогите с Tmemo