Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Вниз

точка или запятая в десятичной дроби?   Найти похожие ветки 

 
ников   (2006-09-25 19:42) [0]

Cruel Masters!
Обычным разделителем в десятичной дроби теперь служит точка.
Однако, как вдруг выяснилось, некоторые пользователи меняют настройки в своем Windows с точки на запятую (им так удобнее что ли). Программа, естественно, при вводе в Edit немедленно вылетает. Конечно, не очень уж трудно, хотя и громоздко, написать обработчик этой ошибки, но такое решение "в лоб" как-то некрасиво. Но с другой стороны, этот разделитель, используемый Windows, -- это системная переменная, она где-то хранится и как-то называется. Не подскажет ли кто из гуру, где ее можно найти, тогда проверку можно будет организовать до StrToFloat. Или я хочу странного?


 
Ega23 ©   (2006-09-25 19:47) [1]

DecimalSeparator + F1


 
Zeqfreed ©   (2006-09-25 20:03) [2]

> Однако, как вдруг выяснилось, некоторые пользователи меняют
> настройки в своем Windows с точки на запятую (им так удобнее
> что ли)

http://en.wikipedia.org/wiki/Decimal_separator


 
ников   (2006-09-26 10:46) [3]

To Ega23
Спасибо, друг. Действительно, все элементарно, после того, как известно имя.
To Zeqfreed
Про Comma Countries это конечно замечательно, но у тебя комп наверняка настроен на точку, как и у большинства.
Еще раз спасибо.


 
Zeqfreed ©   (2006-09-26 11:01) [4]

> [3] ников   (26.09.06 10:46)


> но у тебя комп наверняка настроен на точку, как и у большинства.

С какой, интересно, стати? В региональных настройках выбрана Российская Федерация и, соответственно, все настройки соответствуют региональному стандарту.


 
Barloggg   (2006-09-26 15:49) [5]

а я начхал.
сделал процедуру подчистки введенного в EditBox которая оставляет только первый минус, цифры и первую точку(запятую на лету превращает в точку).

а заодно избавляет от букв там где должно быть только число :)

а что, strtoint работает с региональными настройками? т.е. скомпилированная у меня программа бабахнет на других региональных настройках?


 
gdaujk ©   (2006-09-26 16:32) [6]


> Barloggg   (26.09.06 15:49) [5]


Процедура чистки - замечательный вариант. Только надо и точку и запятую заменять на DecimalSeparator...

strtoint? StrToFloat работает с

var CurrencyString: string;

var CurrencyFormat: Byte;
var NegCurrFormat: Byte;
var ThousandSeparator: Char;
var DecimalSeparator: Char;
var CurrencyDecimals: Byte;
var DateSeparator: Char;
var ShortDateFormat: string;
var LongDateFormat: string;
var TimeSeparator: Char;
var TimeAMString: string;
var TimePMString: string;
var ShortTimeFormat: string;
var LongTimeFormat: string;

var ShortMonthNames: array[1..12] of string;
var LongMonthNames: array[1..12] of string;
var ShortDayNames: array[1..7] of string;
var LongDayNames: array[1..7] of string;
var SysLocale: TSysLocale;
var EraNames: array[1..7] of string;
var EraYearOffsets: array[1..7] of Integer;
var TwoDigitYearCenturyWindow: Word = 50;

var ListSeparator: Char;


 
ников   (2006-09-27 12:37) [7]

to Barloggg & gdaujk
Идея с  чисткой и особенно с подменой точки-запятой на DecimalSeparator просто прелесть. Это решение проще, чем обработка ошибки ввода. Сделал, получилось. Правда, были трудности со значениями "по умолчанию", занесенными в Edit. Их пришлось считывать, исправлять, записывать обратно  и еще врать системе, что они не менялись. Смешно и непривычно теперь выглядят десятичные дроби на  "русифицированных" машинах, хотя это и какая-никакая подсказка пользователю -- как надо "правильно" вводить. (Хотя, если он и сделает "по-старому", то его подправят).



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.036 c
2-1159388288
KidMan
2006-09-28 00:18
2006.10.15
Как сделать, чтобы к письму прикреплялся файл


6-1148039639
kernel
2006-05-19 15:53
2006.10.15
IP2HostName


2-1159504323
Весь в делах
2006-09-29 08:32
2006.10.15
ExtractIcon


3-1155643210
Itoixxx
2006-08-15 16:00
2006.10.15
If в select


15-1158949396
vidiv
2006-09-22 22:23
2006.10.15
Как правильно делать свой Edit?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский