-
Здравствуйте
Может быть мой вопрос не совсем по теме. Если так то поправьте пожалуйста.
Пишу программу в Дельфи ХЕ под Windows XP. Програма работает в сети.
В обработчике OnCreate главной формы первыми командами написаны:
ShortDateFormat:= 'dd-MM-yyyy';
DateSeparator:= '-';
У пользователей в разных компьютерах формат даты для Windows установлен по разному и многие пользователи отказываются менять его, говоря что другие программы (в основном Excel) подстроены под другой формат.
Однако в некоторых компьютерах программа дату выводит в тот формат, какой написан в программе, независимо от того какой формат стоит для Windows. А вот в некоторых упорно выводит в Windows формате, игнорируя значение ShortDateFormat:= 'dd-MM-yyyy';
-
Application.UpdateFormatSettings=false;
-
Уточните пожалуйста
после
ShortDateFormat:= 'dd-MM-yyyy';
DateSeparator:= '-';
должен написать
Application.UpdateFormatSettings=false;?
-
> в некоторых упорно выводит в Windows формате, игнорируя
> значение ShortDateFormat:= 'dd-MM-yyyy';
Используй функцию FormatDateTime и будет тебе щасте
Типа
Label1.Caption := FormatDateTime('dd-MM-yyyy h "hours" n "min" s "sec" ', Now);
-
> В обработчике OnCreate главной формы первыми командами написаны:
>
> ShortDateFormat:= 'dd-MM-yyyy';
> DateSeparator:= '-';
Так лучше не делать, т.к. 1) - не потокобезопасно 2) - может найтись еще один такой же умный компонент или модуль который поменяет еще раз и привет.
Лучше использовать локально нужный формат или форматировать самому.
-
> форматировать самому.
>
+1
-
Все подобные поделки летят в корзину, ибо программа должна показывать дату, время, валюту в том виде, в каком я хочу их видеть. 21 век уже на дворе.
-
Все подобные ораторы должны быть уволены и отправлены на плантации дабы не повышать энтропию. Ну и чтобы не чувствовали себя телепатами, это лечится электрошоком.
Потом может дойдет, что кроме как "показать" есть еще другая работа, например парсинг входных данных из внешнего источника, который диктует необходимый формат.
-
хотя зачем на плантации, в биоректор сразу - 21 век на дворе.
ЗЫ не сильно грубо?
-
> Андреевич (28.10.12 18:58) [7]
> например парсинг входных данных из внешнего источника,
> который диктует необходимый формат.
Речь не о том, зачем это делается, речь о том как. Запомни раз и навсегда, нельзя менять значения ShortDateFormat:= 'dd-MM-yyyy' и DateSeparator:= '-', т.к. данные переменные глобальные (в последних делфи получим предупреждение насчет этого) и неизвестно к каким последствиям это приведет. Для тех кто желает сильно использовать ShortDateFormat и т.д. отличные от системных, есть перегруженные варианты функций, принимающие одним из аргументов именно твой формат. Берешь системный, копируешь себе, меняешь в своей переменной формат и используешь ЛОКАЛЬНО как я и написал выше.
-
> Берешь системный, копируешь себе, меняешь в своей переменной
> формат и используешь ЛОКАЛЬНО как я и написал выше.
>
я то беру, а сторонний dcu? :)
-
> кроме как "показать" есть еще другая работа, например парсинг
> входных данных из внешнего источника, который диктует необходимый
> формат.
А на компьютере при этом может одновременно работать более одной программы, которые пытаются установить свои настройки форматов таким вот брутальным способом. :)
Про пользователя я уже молчу. (((
-
Кстати для парсинга стоит самому написать функцию типа StrToDateTimeFormat.