Главная страница
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.031 c
1-89322
romeo
2003-10-16 16:47
2003.10.27
Delphi не знает функцию


1-89288
LinOS
2003-10-17 05:57
2003.10.27
Указания компилятору что бы брал разные строки кода


14-89547
Nik8.
2003-10-10 08:31
2003.10.27
Глюки с прорисовкой в listview


9-89089
x_michael
2003-04-22 02:06
2003.10.27
DXSpriteEngine и прозрачность входящих туда Sprites


14-89497
Delirium^.Tremens
2003-10-09 11:29
2003.10.27
Суицид