TDateTimePicker - switch to OnClick instead of OnMouseUp

git-svn-id: trunk@51734 -
This commit is contained in:
zoran 2016-02-27 14:33:16 +00:00
parent 238a361f68
commit ee08798b5e

View File

@ -541,9 +541,7 @@ type
procedure CalendarKeyDown(Sender: TObject; var Key: Word; procedure CalendarKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); Shift: TShiftState);
procedure CalendarResize(Sender: TObject); procedure CalendarResize(Sender: TObject);
procedure CalendarMouseUp(Sender: TObject; Button: TMouseButton; procedure CalendarClick(Sender: TObject);
Shift: TShiftState; X, Y: Integer);
procedure VisibleOfParentChanged(Sender: TObject); procedure VisibleOfParentChanged(Sender: TObject);
protected protected
@ -685,10 +683,12 @@ begin
AdjustCalendarFormSize; AdjustCalendarFormSize;
end; end;
procedure TDTCalendarForm.CalendarMouseUp(Sender: TObject; procedure TDTCalendarForm.CalendarClick(Sender: TObject);
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var
P: TPoint;
begin begin
if Cal.AreCoordinatesOnDate(X, Y) then P := Cal.GetCalendarControl.ScreenToClient(Mouse.CursorPos);
if Cal.AreCoordinatesOnDate(P.x, P.y) then
CloseCalendarForm(True); CloseCalendarForm(True);
end; end;
@ -737,11 +737,6 @@ begin
inherited DoClose(CloseAction); inherited DoClose(CloseAction);
end; end;
type
{ To be able to access TControl's protected members,
we derive our class TDTControl from TControl: }
TDTControl = class(TControl);
constructor TDTCalendarForm.CreateNewDTCalendarForm(AOwner: TComponent; constructor TDTCalendarForm.CreateNewDTCalendarForm(AOwner: TComponent;
ADTPicker: TCustomDateTimePicker); ADTPicker: TCustomDateTimePicker);
var var
@ -801,7 +796,7 @@ begin
Cal.SetDate(DTPicker.Date); Cal.SetDate(DTPicker.Date);
Cal.GetCalendarControl.OnResize := @CalendarResize; Cal.GetCalendarControl.OnResize := @CalendarResize;
TDTControl(Cal.GetCalendarControl).OnMouseUp := @CalendarMouseUp; Cal.GetCalendarControl.OnClick := @CalendarClick;
if Cal.GetCalendarControl is TWinControl then begin if Cal.GetCalendarControl is TWinControl then begin
TWinControl(Cal.GetCalendarControl).OnKeyDown := @CalendarKeyDown; TWinControl(Cal.GetCalendarControl).OnKeyDown := @CalendarKeyDown;
TWinControl(Cal.GetCalendarControl).TabStop := True; TWinControl(Cal.GetCalendarControl).TabStop := True;
@ -821,7 +816,7 @@ begin
if Assigned(Cal) then begin if Assigned(Cal) then begin
Cal.GetCalendarControl.OnResize := nil; Cal.GetCalendarControl.OnResize := nil;
TDTControl(Cal.GetCalendarControl).OnMouseUp := nil; Cal.GetCalendarControl.OnClick := nil;
if Cal.GetCalendarControl is TWinControl then if Cal.GetCalendarControl is TWinControl then
TWinControl(Cal.GetCalendarControl).OnKeyDown := nil; TWinControl(Cal.GetCalendarControl).OnKeyDown := nil;
Cal.Free; Cal.Free;