Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.27;
Скачать: CL | DM;

Вниз

EConvertError   Найти похожие ветки 

 
Woman ©   (2003-10-15 14:27) [0]

Добрый день!
Может кто подскажет, почему на строчку:

Date_n:=StrToDate("28.08.2003");

на моей машине subj не возникает, а на другой возникает?


 
Игорь Шевченко ©   (2003-10-15 14:30) [1]

потому что ShortDateFormat разный. Control Panel\International


 
Woman ©   (2003-10-15 14:34) [2]

А что это за параметры, можно ли их поменять?


 
Игорь Шевченко ©   (2003-10-15 14:35) [3]

Можно в проекте поставить первой строчкой
ShortDateFormat := "dd.mm.yyyy";


 
Woman ©   (2003-10-15 14:39) [4]

Спасибо.


 
Reindeer Moss Eater ©   (2003-10-15 14:43) [5]

Для уверенности нужно еще
Application.UpdateFormatSettings:=False;


 
Игорь Шевченко ©   (2003-10-15 15:19) [6]

Reindeer Moss Eater © (15.10.03 14:43)

Не нужно :)


 
Reindeer Moss Eater ©   (2003-10-15 15:20) [7]

Нужно, нужно.


 
Игорь Шевченко ©   (2003-10-15 15:22) [8]

Reindeer Moss Eater © (15.10.03 15:20)

А зачем ? :)


 
Reindeer Moss Eater ©   (2003-10-15 15:26) [9]

Запустили программу.
Она выполнила [3] и работает дальше.
Юзер переключился в панель управления и изменил формат даты.
Переменная ShortDateFormat в SysUtils изменилась на новое значение указанное юзером.
В программе настало время выполнить StrToDate.
Программа обломилась.


 
ZrenBy ©   (2003-10-15 15:27) [10]

Даты и времена, забиваемые руками куда-либо
нужно всегда представлять в ISO формате.
Проблем не будет никогда. Естественно, нужно
написать свою функцию преобразвания ISO->TDateTime

20030828 11:25:36:000

А все остальное от лукавого


 
Игорь Шевченко ©   (2003-10-15 15:32) [11]

Reindeer Moss Eater © (15.10.03 15:26)

Эта....а если юзер reset нажмет ?


 
Reindeer Moss Eater ©   (2003-10-15 15:33) [12]

[5]
Для уверенности нужно еще ...


 
игорь шевченко ©   (2003-10-15 15:57) [13]

Для уверенности не нужно преобразование строки в дату использовать. А еще для большей уверенности можно сделать так:

var
OldFormat : String;
begin
OldFormat := ShortDateFormat;
ShortDateFormat := "dd.mm.yyyy";
try
xxx := StrToDate ("01.01.1919");
finally
ShortDateFormat := OldFormat;
end;


 
Reindeer Moss Eater ©   (2003-10-15 16:13) [14]

А если формат поменяется аккурат "между" строками?

ShortDateFormat := "dd.mm.yyyy";
try
xxx := StrToDate ("01.01.1919");

:)


 
Игорь Шевченко ©   (2003-10-15 16:28) [15]

Reindeer Moss Eater © (15.10.03 16:13)

Тогда надо сразу format запускать :)


 
Романов Р.В. ©   (2003-10-15 17:39) [16]


> Reindeer Moss Eater © (15.10.03 16:13) [14]
> А если формат поменяется аккурат "между" строками?

Программа об этом узнает позже...


 
Игорь Шевченко ©   (2003-10-15 17:43) [17]

Романов Р.В. © (15.10.03 17:39)

Кстати, да, спасибо за напоминание. WM_SETTINGCHANGE ставится в очередь сообщений.



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

Текущий архив: 2003.10.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.03 c
3-89104
AlexPul
2003-10-08 16:21
2003.10.27
Совместный доступ к Paradox


1-89296
AlexandrKu
2003-10-14 10:22
2003.10.27
Динамическое меню


3-89099
AndrewK
2003-10-08 14:13
2003.10.27
Как написать запрос?


1-89203
off
2003-10-15 13:57
2003.10.27
Как работать с TChart?


3-89188
dez
2003-10-06 12:12
2003.10.27
MDAC