Форум: "KOL";
Текущий архив: 2008.04.20;
Скачать: [xml.tar.bz2];
ВнизКалендари Найти похожие ветки
← →
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 вся ветка
Форум: "KOL";
Текущий архив: 2008.04.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c