Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2009, 12:33   #1
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию Языковые стандарты

Добрый день.
У меня одна софтина работает через сервер на куче компьютеров.
Языковые настройки на которых могут быть разными и не хочется везде лазить в Панель управления, перенастраивать языки и т.п.. А у меня по коду даты и дроби формируются из строк и разных источников. Если перед действием написать, например,
ShortDateFormat:='d.mm.yyyy';
DecimalSeparator := '.';
или
try
encodedate(...);
except ....

то ошибок вроде нет.
Вопрос... А как указать программе глобально!!! форматы даты, DecimalSeparator-а и т.п. для всей программы сразу? Чтобы небыло проблем даже при китайском языке в системе?
_SERGEYX_ вне форума Ответить с цитированием
Старый 26.02.2009, 12:56   #2
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

Процедура GetLocaleFormatSettings из модуля SysUtils.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.
Andrei вне форума Ответить с цитированием
Старый 26.02.2009, 13:07   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
для всей программы сразу?
Ну в OnCreate задавай это все...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.02.2009, 13:11   #4
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

да ты не обращай внимания что в системе там по разному стоит. используй свои шаблоны, будет щастье) все таки есть функция DateTimeToString - там и задавай формат
Роман Радер вне форума Ответить с цитированием
Старый 26.02.2009, 20:35   #5
Keeper89
Новичок
Джуниор
 
Регистрация: 25.02.2009
Сообщений: 2
По умолчанию

Работайте со стандартными преобразованиями:
Код:
1 procedure DateTimeToString ( var Result : string; const Formatting : string; DateTime : TDateTime ) ;
2 procedure DateTimeToString ( var Result : string; const Formatting : string; DateTime : TDateTime; 
const FormatSettings : TFormatSettings ) ;
как указал Роман Радер.

Ну а если вам нужно выделять минуты, годы и т.д. есть к примеру функция:
Код:
procedure DecodeDate ( const SourceDate : TDateTime; out Year, Month, Day : Word ) ;
или
procedure DecodeDateTime ( const SourceDate : TDateTime; out Year, Month, Day, Hour, Min, Sec, MSec : Word ) ;
Keeper89 вне форума Ответить с цитированием
Старый 27.02.2009, 09:53   #6
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Всем спасибо. Может это и не программа виновата, а глюки Windows. Не раз было такое: зовут меня юзеры, мол, ошибка. Смотрю, сообщение об ошибке <"Неверная дата 10.12.2007">. Лезу в региональные настройки. Язык - русский. Формат даты - dd.mm.yyyy. Вроде, все правильно. Ставлю английский, жму Применить, опять ставлю русский, снова жму Применить и... все начинает работать нормально.
_SERGEYX_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Язык и региональные стандарты All517 Общие вопросы Delphi 4 13.08.2008 07:06
Как грамотно загружать языковые файлы в приложение? apromix Общие вопросы Delphi 11 09.05.2008 21:06