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

Вниз

Календари   Найти похожие ветки 

 
misha_shar ©   (2007-08-24 16:47) [0]

Попытка работы с календарями у меня не удалась. Оказалось что
между свойством Date и системными утилитами преобразующими
переменные типа TDateTime в строки существует разница на-693594;
Я внес изменения в программы Календарей и все стало работать корректно.
Изменения привожу ниже.
unit KOLMHDateTimePicker;
//?? misha_shar 443
//?? misha_shar 450
//  MHDateTimePicker Компонент (MHDateTimePicker Component)
//  Автор (Author): Жаров Дмитрий (Zharov Dmitry) aka Гэндальф (Gandalf)

implementation

const cofDate=693594;

function TMHDateTimePicker.GetDateTime:TDateTime;
var
 TMP:TSystemTime;
begin
 if Perform(DTM_GETSYSTEMTIME,0,Longint(@TMP)) = GDT_VALID then
 begin
   if SystemTime2DateTime(TMP, Result) then
     PDateTimePickerData(CustomData)^.FDateTime:=Result;
 end
 else
   Result := 0;
Result:=Result-cofDate; //?? misha_shar 443
end;
//
procedure TMHDateTimePicker.SetDateTime(const Value:TDateTime);
var
 TMP:TSystemTime;
 DT : TDateTime;  //?? misha_shar 450
begin
DT:=Value+cofDate;  //?? misha_shar
if DateTime2SystemTime(DT,TMP) then //?? misha_shar
//  if DateTime2SystemTime(Value,TMP) then
   PDateTimePickerData(CustomData)^.FDateTime:=Value;
 Perform(DTM_SETSYSTEMTIME,GDT_VALID,Longint(@TMP));
 DoOnChange;
end;
--------------------------------------
//**********************************************************************
// KOLMonthCalendar - класс-оболочка для MonthCalendar Win32 Common Controls
//
// 2006 ECM / thanx to avs for help
// version 0.06   02.03.06
//**********************************************************************
//?? misha_shar 516
//?? misha_shar 642
//?? misha_shar 656
unit KOLMonthCalendar;

implementation

const cofDate=693594;
//
procedure TMonthCalendar.SetDayOfWeek(const Value: TCalDayOfWeek);
var
 DOWFlag: Integer;
 A: array[0..1] of KOLChar;//?? misha_shar 516 исправления для работы с Unicode

function TMonthCalendar.GetDateVal(const Index: Integer): TDateTime;
const
 Msg_Val: Array[0..1] of DWORD = (
   MCM_GETCURSEL,
   MCM_GETTODAY
 );
var
 ST: TSystemTime;
begin
 Perform(Msg_Val[Index],0,Integer(@ST));
 FillChar(ST.wHour,SizeOf(Word)*4,0);
 SystemTime2DateTime(ST,Result);
 Result:=Result-cofDate;//misha_shar 642
end;

procedure TMonthCalendar.SetDateVal(const Index: Integer;
 const Value: TDateTime);
const
 Msg_Val: Array[0..1] of DWORD = (
   MCM_SETCURSEL,
   MCM_SETTODAY
 );
var
 ST : TSystemTime;
 DT : TDateTime; //?? misha_shar 656
begin
DT:=Value+cofDate;//?? misha_shar
 DateTime2SystemTime(DT,ST);//?? misha_shar
 Perform(Msg_Val[Index],0,Integer(@ST));
end;


 
misha_shar ©   (2007-08-27 09:31) [1]

Оказалось что это все не надо если пользоваться KOL программами преобразования Даты и времени. Так что исправления пришлось вернуть назад.


 
ANTPro ©   (2007-08-27 13:35) [2]

> [0] misha_shar ©   (24.08.07 16:47)
> TDateTime в строки существует разница на-693594;

 VCLDate0 = 693594;
 {* Value to convert VCL "date 0" to KOL "date 0" and back.
    This value corresponds to 30-Dec-1899, 0:00:00. So,
    to convert VCL date to KOL date, just subtract this
    value from VCL date. And to convert back from KOL date
    to VCL date, add this value to KOL date.}



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

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

Наверх




Память: 0.47 MB
Время: 0.019 c
3-1196237600
pavel_guzhanov
2007-11-28 11:13
2008.04.20
UDF для Firebird


3-1196229406
ROMQA
2007-11-28 08:56
2008.04.20
DELPHI SQL запрос в файл!


3-1195702264
Петро
2007-11-22 06:31
2008.04.20
Универсальный доступ к СУБД


11-1188223121
Ned
2007-08-27 17:58
2008.04.20
Консольные приложения


2-1206023198
webSQLNeederr
2008-03-20 17:26
2008.04.20
Отображение процесса аплодов в idFTP