Главная страница
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.036 c
3-89137
Gawk
2003-10-08 15:09
2003.10.27
DBGrid+ADOQuery заголовок DBGrid


3-89120
User_OKA
2003-10-08 10:03
2003.10.27
Lookup


1-89372
Bovdur
2003-10-14 05:06
2003.10.27
проблема combobox


1-89249
RoLeX
2003-10-14 14:55
2003.10.27
Как из DateTimePicker1.Time вычесть 120 секунд ???


4-89644
ShadoWFM
2003-08-20 19:54
2003.10.27
Непонятная функйия