Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.09.06;
Скачать: [xml.tar.bz2];

Вниз

Формат даты   Найти похожие ветки 

 
cyber-pilot   (2009-07-07 16:11) [0]

При запуске программы я задаю формат даты с помощью переменной ShortDateFormat и DateSeparator:

ShortDateFormat := "dd.MM.yyyy";
DateSeparator := ".";


И все работает хорошо. Но если после запуска программы в "Панели управления" -> "Язык и региональные стандарты" поменять формат даты например на такой dd/MM/yy,
то при конвертации строк в даты возникают ошибки, например здесь:
vDate := StrToDate("20.06.2009");

выдается ошибка ""20.06.2009" is not a valid date."

Как сделать, чтобы формат даты был жестко заданным или как перехватить событие изменения формата даты в системе?


 
Anatoly Podgoretsky ©   (2009-07-07 16:15) [1]

Второй, перегруженый формат функции.


 
cyber-pilot   (2009-07-07 16:32) [2]


> Anatoly Podgoretsky ©   (07.07.09 16:15) [1]
>
> Второй, перегруженый формат функции.


Типа вот так:

function StrToDate(const S: String): TDate;
begin
 ShortDateFormat := "dd.MM.yyyy";
 DateSeparator := ".";
 Result := SysUtils.StrToDate(S);
end;


А есть какой-нибудь другой способ, а то тут лишние операции выполняются. Хоть и не очень заметно, но неприятно.


 
Юрий Зотов ©   (2009-07-07 16:37) [3]

Если не делать ничего, то автоматически будут использованы системные установки. Что и требуется.


 
cyber-pilot   (2009-07-07 16:46) [4]


> Юрий Зотов ©   (07.07.09 16:37) [3]


В том то и проблема. Системные установки почему-то иногда меняются. Либо сами пользователи меняют, что вряд ли, либо какие-то программы.


 
clickmaker ©   (2009-07-07 16:47) [5]

> либо какие-то программы


> При запуске программы я задаю формат даты с помощью переменной
> ShortDateFormat и DateSeparator:
>
> ShortDateFormat := "dd.MM.yyyy";
> DateSeparator := ".";


:)


 
cyber-pilot   (2009-07-07 17:11) [6]


> clickmaker ©   (07.07.09 16:47) [5]


Ничего смешного, такой способ устанавливает формат даты только внутри программы. Системный не трогает.


 
clickmaker ©   (2009-07-07 17:22) [7]

> [6] cyber-pilot   (07.07.09 17:11)

ну, у программистов не на Дельфи может не быть под рукой такой удобной переменной ShortDateFormat.
Вот и меняют системный )


 
Плохиш ©   (2009-07-07 17:41) [8]


> cyber-pilot   (07.07.09 16:11)
>
>

Application.GetFormatSettings := false;


 
Плохиш ©   (2009-07-07 17:41) [9]


> GetFormatSettings

читать как UpdateFormatSettings :-)))


 
cyber-pilot   (2009-07-07 17:58) [10]


> Плохиш ©   (07.07.09 17:41) [9]


Спасибо! Работает!!!



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.09.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
1-1213975256
Андрей
2008-06-20 19:20
2009.09.06
Перехват событий


1-1214057054
Jolik
2008-06-21 18:04
2009.09.06
Как добавить такую функциональность в ListView ...


2-1246707379
Новичок
2009-07-04 15:36
2009.09.06
Работа со SkyStar2


2-1246337733
cr@nk
2009-06-30 08:55
2009.09.06
Прозрачное шифрование в InterBase


1-1214066182
X9
2008-06-21 20:36
2009.09.06
Открыть диалог поиска текста в WebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский