Десятичный разделитель
От: NicNici Россия  
Дата: 24.03.04 13:40
Оценка:
Подскащите какой функцией можно узнать какой десятичный разделитель, запятая или точка, указан в региональных настройках и используется системой. Если можно с примерчиком.
Re: Десятичный разделитель
От: nim  
Дата: 24.03.04 13:50
Оценка: +1
Здравствуйте, NicNici, Вы писали:

NN>Подскащите какой функцией можно узнать какой десятичный разделитель, запятая или точка, указан в региональных настройках и используется системой. Если можно с примерчиком.

Может это:
DECIMALSEPARATOR?
Re[2]: Десятичный разделитель
От: kavlad Россия http://www.wavesoft.ru
Дата: 24.03.04 14:21
Оценка:
Здравствуйте, nim, Вы писали:

nim>Может это:

nim>DECIMALSEPARATOR?

Или WinAPI GetLocaleInfo
... << RSDN@Home 1.1.3 stable >>
Re: Десятичный разделитель
От: Аноним  
Дата: 24.03.04 14:24
Оценка: -1
Здравствуйте, NicNici, Вы писали:

NN>Подскащите какой функцией можно узнать какой десятичный разделитель, запятая или точка, указан в региональных настройках и используется системой. Если можно с примерчиком.


var
c: Char;
begin
c:= GetLocaleChar(GetThreadLocale, LOCALE_SDECIMAL, '.');
***********

таким макаром у тебя ф-ция вернет разделитель, установленный в винде. а на старте программы хорошо устанавливать DecimalSeparator:= '.';
Re[3]: Десятичный разделитель
От: nim  
Дата: 24.03.04 14:25
Оценка:
"kavlad" <12685@news.rsdn.ru> сообщил/сообщила в новостях следующее: news:581308@news.rsdn.ru...
From: kavlad

Здравствуйте, nim, Вы писали:


>Или WinAPI GetLocaleInfo

Если это принципиально
Posted via RSDN NNTP Server 1.8 beta
Re: Десятичный разделитель
От: Lion_ua  
Дата: 24.03.04 15:14
Оценка:
Здравствуйте, NicNici, Вы писали:

NN>Подскащите какой функцией можно узнать какой десятичный разделитель, запятая или точка, указан в региональных настройках и используется системой. Если можно с примерчиком.

---------
пишеш при создании приложения
DecimalSeparated := ','
и во всем приложениииспользуется разделитель ','
Re[4]: Десятичный разделитель
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 24.03.04 17:50
Оценка: +1
Здравствуйте, nim, Вы писали:

>>Или WinAPI GetLocaleInfo

nim>Если это принципиально

Принципиально. DecimalSeparator можно изменить отдельно от информации о локали, причем только для своей программы. Это обычная переменная.

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Re: Десятичный разделитель
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.03.04 04:56
Оценка: +1
Здравствуйте, NicNici, Вы писали:

NN>Подскащите какой функцией можно узнать какой десятичный разделитель, запятая или точка, указан в региональных настройках и используется системой. Если можно с примерчиком.

Вот фрагмент из TFM:
Unit SysUtils;

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;

Delphi предоставляет информацию о текущей локали в виде переменных, а не функций. Эти переменные инициализируются при старте приложения (т.е. если поменять региональные настройки в процессе работы, то приложение этого не увидит). В принципе, можно эти настройки менять, и это повлияет на поведение функций из VCL (типа IntToStr), но я не рекомендую — часть используемого в приложении кода может обращаться не в SysUtils, а напрямую к WinAPI.
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Десятичный разделитель
От: NicNici Россия  
Дата: 25.03.04 06:33
Оценка:
Спасибо всем за участие и ваши ответы.
Re[2]: Десятичный разделитель
От: Аноним  
Дата: 25.03.04 09:56
Оценка: 18 (1)
Здравствуйте, NicNici, Вы писали:

NN>Спасибо всем за участие и ваши ответы.


Не спеши. Это была официальная инфа.
Теперь про грабельки: пойди и в локальных настройках удали этот символ. В переводе на русский — DecimalSeparator может иметь и неприятное значение.

Да продлятся годы твои и твоих программ.
Re[3]: Десятичный разделитель
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 25.03.04 10:04
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Теперь про грабельки: пойди и в локальных настройках удали этот символ.

Так-таки и удали? Regional and Language Options такого изврата не позволит. Выдает ошибку, советуя, раз мы такие извращенцы, использовать символ пробела. Но это все равно символ, а не пустое место. Правда, при таких настройках строки парсить несколько сложнее
Или это только с определенной версии Windows они такие осторожные стали?

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Re[2]: Десятичный разделитель
От: Leonid Troyanovsky  
Дата: 25.03.04 10:42
Оценка: 34 (2) +1
Здравствуйте, Sinclair, Вы писали:

S>Delphi предоставляет информацию о текущей локали в виде переменных, а не функций. Эти переменные инициализируются при старте приложения (т.е. если поменять региональные настройки в процессе работы, то приложение этого не увидит). В принципе, можно эти


Зависит от Application.UpdateformatSettings
--
С уважением, LVT
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.