Странное поведение DecimalSeparator
Модератор: Модераторы
В Delphi у меня DecimalSeparator и прочие переменные такого типа брались из локали. Т.е. винда немецкая, и DecimalSeparator=','. В Lazarus под linux я почему-то получаю DecimalSeparator='.', хотя LC_NUMERIC=de_DE. Это как понимать? Как вообще выставляется DecimalSeparator по дефолту? Или я сам принудительно должен её менять?
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Да, я уже понял, пришлось писать:
)
Они, похоже, в первую очередь двигают виндовую версию.
Код: Выделить всё
{$IFDEF LINUX}
S:=Application.EnvironmentVariable['LC_NUMERIC'];
if (Pos('de',LowerCase(S))<>0) then begin ThousandSeparator:='.'; DecimalSeparator:=','; end;
if (Pos('ru',LowerCase(S))<>0) then begin ThousandSeparator:='.'; DecimalSeparator:=','; end;
if (Pos('en',LowerCase(S))<>0) then begin ThousandSeparator:=','; DecimalSeparator:='.'; end;
{$ENDIF}Они, похоже, в первую очередь двигают виндовую версию.
