win32: implement TWin32WSCustomCalendar.HitTest

git-svn-id: trunk@19112 -
This commit is contained in:
paul 2009-03-26 08:30:08 +00:00
parent 3b0c402312
commit 5c9822cc3e

View File

@ -48,6 +48,7 @@ type
class procedure AdaptBounds(const AWinControl: TWinControl;
var Left, Top, Width, Height: integer; var SuppressMove: boolean); override;
class function GetDateTime(const ACalendar: TCustomCalendar): TDateTime; override;
class function HitTest(const ACalendar: TCustomCalendar; const APoint: TPoint): TCalendarPart; override;
class procedure SetDateTime(const ACalendar: TCustomCalendar; const ADateTime: TDateTime); override;
class procedure SetDisplaySettings(const ACalendar: TCustomCalendar; const ASettings: TDisplaySettings); override;
end;
@ -116,6 +117,33 @@ begin
Result := EncodeDate(WYear,WMonth,WDay);
end;
class function TWin32WSCustomCalendar.HitTest(const ACalendar: TCustomCalendar;
const APoint: TPoint): TCalendarPart;
var
HitTestInfo: MCHITTESTINFO;
HitPart: DWord;
begin
if not WSCheckHandleAllocated(ACalendar, 'TWin32WSCustomCalendar.HitTest') then
Exit;
FillChar(HitTestInfo, SizeOf(HitTestInfo), 0);
HitTestInfo.cbSize := SizeOf(HitTestInfo);
HitTestInfo.pt := APoint;
HitPart := SendMessage(ACalendar.Handle, MCM_HITTEST, 0, LPARAM(@HitTestInfo));
case HitPart of
MCHT_CALENDARDATE,
MCHT_CALENDARDATENEXT,
MCHT_CALENDARDATEPREV: Result := cpDate;
MCHT_CALENDARWEEKNUM : Result := cpWeekNumber;
MCHT_TITLEBK: Result := cpTitle;
MCHT_TITLEMONTH: Result := cpTitleMonth;
MCHT_TITLEYEAR: Result := cpTitleYear;
MCHT_TITLEBTNNEXT,
MCHT_TITLEBTNPREV: Result := cpTitleBtn;
else
Result := cpNoWhere;
end;
end;
class procedure TWin32WSCustomCalendar.SetDateTime(const ACalendar: TCustomCalendar; const ADateTime: TDateTime);
var
ST: SystemTime;