Странное поведение DecimalSeparator

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Сообщение yozh » 04.04.2006 01:03:49

В Delphi у меня DecimalSeparator и прочие переменные такого типа брались из локали. Т.е. винда немецкая, и DecimalSeparator=','. В Lazarus под linux я почему-то получаю DecimalSeparator='.', хотя LC_NUMERIC=de_DE. Это как понимать? Как вообще выставляется DecimalSeparator по дефолту? Или я сам принудительно должен её менять?
yozh
новенький
 
Сообщения: 25
Зарегистрирован: 01.04.2006 16:17:05

Сообщение Janus » 04.04.2006 19:13:48

Ну сам видишь, что он меняется от системы к системе, так что лучше бы самому выставлять. Такие вещи вообще лучше самому делать, т.к. никогда не угадаешь...
Janus
постоялец
 
Сообщения: 134
Зарегистрирован: 07.11.2005 17:06:49

Сообщение Sergei I. Gorelkin » 05.04.2006 12:50:33

Из беглого взгляда в исходники следует, что для Linux просто вообще отсутствует код инициализации DecimalSeparator по системной локали. В Windows, OS/2 и EMX таковой код присутствует...
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1397
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение yozh » 05.04.2006 20:25:34

Да, я уже понял, пришлось писать:
Код: Выделить всё
 {$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}


:))

Они, похоже, в первую очередь двигают виндовую версию.
yozh
новенький
 
Сообщения: 25
Зарегистрирован: 01.04.2006 16:17:05

Сообщение yozh » 05.04.2006 20:28:09

Кстати, а нажатие ENTER на TStringGrid только в линуксе НЕ генерит KeyPress или в windows тоже? А то я гляжу - в Delphi работало, в лазаре перестало. Начал разбираться и наткнулся. Пришлось переделывать на OnKeyUp, там-то Key=13 распознаётся.
yozh
новенький
 
Сообщения: 25
Зарегистрирован: 01.04.2006 16:17:05


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 51

Рейтинг@Mail.ru