Форум: "Начинающим";
Текущий архив: 2016.03.20;
Скачать: [xml.tar.bz2];
ВнизРазное "поведение" date() на XP и Win7 Найти похожие ветки
← →
Дмитрий (2014-08-07 15:39) [0]Разное "поведение" date() на XP и Win7
Столкнулся с разнинецей в отчетах при формировании в одной и той же версии, но в разных ОС.
Получаю через компонент TMonthCalendar дату:...
frmDate.Calendar.Date:=date();
frmDate.ShowModal;
result:=frmDate.Calendar.Date;
...
На Вин7/х64 дата почему-то включает компоненту времени, которая равна текущему.
На ХП нет.
В чем причина? Откуда появляется текущее время?
← →
ВладОшин © (2014-08-07 16:41) [1]локаль одинакова?
← →
Дмитрий (2014-08-07 18:21) [2]одинакова - 1049
← →
ВладОшин © (2014-08-07 18:26) [3]дело не в date()
var
D: TDate;
begin
D := Date;
MonthCalendar1.Date := D;
ShowMessageFmt("%s <-> %s",[DatetimeToStr(MonthCalendar1.Date),DatetimeToStr(D)]);
надо смотреть как MonthCalendar1 с датой работает
← →
ВладОшин © (2014-08-07 18:32) [4]procedure TCommonCalendar.SetDate(Value: TDate);
begin
ReplaceTime(TDateTime(Value), FDateTime);
и .т.д...
а FDateTime при создании := now
а вот почему на XP без времени - странно. Настройки локали? Все-таки код другой?
← →
Дмитрий (2014-08-07 19:02) [5]>Настройки локали? Все-таки код другой?
Какие настройки локали смотреть?
Код более подробно...
var
res, dfirst : Variant;
...
dfirst := GetNeedDate("Укажите дату начала периода");
if VarIsNull(dfirst) then exit;
SaveToLog(" Начало: " + QuotedStr(FormatDateTime("yyyy-mm-dd hh:nn:ss", dfirst)) ); // <-- тут обнаруживается разница
...
adq.ParamByName("FirstDate").Value:=dfirst;
...
end;
//-------------------------------------------------------
function GetNeedDate (Caption : String = "") : variant;
begin
result:=null;
frmDate:=TfrmDate.Create(Application);
frmDate.Caption:= Caption;
frmDate.Calendar.Date:=date();
frmDate.ShowModal;
if frmDate.ModalResult = mrOK then
result:=frmDate.Calendar.Date;
end;
← →
ВладОшин © (2014-08-10 10:41) [6]
> Какие настройки локали смотреть?
про дату, наверное
но не уверен
думаю или прграмма (код, версия)все таки разная
> var
> D: TDate;
> begin
> D := Date;
> MonthCalendar1.Date := D;
> ShowMessageFmt("%s <-> %s",[DatetimeToStr(MonthCalendar1.
> Date),DatetimeToStr(D)]);
этот код отрабытывает на разных машинах по разному?
← →
Дмитрий (2014-08-26 18:30) [7]
> думаю или прграмма (код, версия)все таки разная
для проверки я запускаю из публичной папки на сервере один и тот же экзешник
в заставке выводится дата и время компиляции
> этот код отрабытывает на разных машинах по разному?
на машинах с ХР и Вин7 этот код отрабатывает одинаково---------------------------
26.08.2014 18:25:10 <-> 26.08.2014
---------------------------
OK
← →
junglecat (2014-08-26 18:34) [8]> [7] Дмитрий (26.08.14 18:30)
календарь - это обертка над стандартным виндовым контролом. Видимо, в вин7 он по дефолту включает текущее время, если оно не задано явно.
как вариант - TDate(Trunc(MonthCalendar1.Date))
← →
Inovet © (2014-08-26 18:36) [9]> [7] Дмитрий (26.08.14 18:30)
> в заставке выводится дата и время компиляции
Календарь здесь зачем вообще?
← →
Дмитрий (2014-08-27 13:13) [10]календарь не для заставки, а для задачи, в ч-ти выбор интервала отчетного периода
заставка для контроля запускаемой версии
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2016.03.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.002 c