mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-19 19:29:25 +02:00
CalendarPopup: implement MinDate and MaxDate.
This commit is contained in:
parent
200d15366f
commit
8011cacecc
@ -39,13 +39,20 @@ type
|
||||
FClosed: boolean;
|
||||
FOnReturnDate: TReturnDateEvent;
|
||||
procedure Initialize(ADate: TDateTime;
|
||||
const DisplaySettings: TDisplaySettings);
|
||||
const DisplaySettings: TDisplaySettings;
|
||||
AMinDate, AMaxDate: TDateTime);
|
||||
procedure KeepInView(const PopupOrigin: TPoint);
|
||||
procedure ReturnDate;
|
||||
protected
|
||||
procedure Paint; override;
|
||||
end;
|
||||
|
||||
procedure ShowCalendarPopup(const APosition: TPoint; ADate: TDateTime;
|
||||
const CalendarDisplaySettings: TDisplaySettings;
|
||||
AMinDate, AMaxDate: TDateTime;
|
||||
const OnReturnDate: TReturnDateEvent; const OnShowHide: TNotifyEvent = nil;
|
||||
ACaller: TControl = nil);
|
||||
|
||||
procedure ShowCalendarPopup(const APosition: TPoint; ADate: TDateTime;
|
||||
const CalendarDisplaySettings: TDisplaySettings;
|
||||
const OnReturnDate: TReturnDateEvent; const OnShowHide: TNotifyEvent = nil;
|
||||
@ -57,6 +64,7 @@ implementation
|
||||
|
||||
procedure ShowCalendarPopup(const APosition: TPoint; ADate: TDateTime;
|
||||
const CalendarDisplaySettings: TDisplaySettings;
|
||||
AMinDate, AMaxDate: TDateTime;
|
||||
const OnReturnDate: TReturnDateEvent; const OnShowHide: TNotifyEvent;
|
||||
ACaller: TControl);
|
||||
var
|
||||
@ -64,7 +72,7 @@ var
|
||||
begin
|
||||
PopupForm := TCalendarPopupForm.Create(nil);
|
||||
PopupForm.FCaller := ACaller;
|
||||
PopupForm.Initialize(ADate, CalendarDisplaySettings);
|
||||
PopupForm.Initialize(ADate, CalendarDisplaySettings, AMinDate, AMaxDate);
|
||||
PopupForm.FOnReturnDate := OnReturnDate;
|
||||
PopupForm.OnShow := OnShowHide;
|
||||
PopupForm.OnHide := OnShowHide;
|
||||
@ -72,6 +80,14 @@ begin
|
||||
PopupForm.KeepInView(APosition); // must be after Show for PopupForm.AutoSize to be in effect.
|
||||
end;
|
||||
|
||||
procedure ShowCalendarPopup(const APosition: TPoint; ADate: TDateTime;
|
||||
const CalendarDisplaySettings: TDisplaySettings;
|
||||
const OnReturnDate: TReturnDateEvent; const OnShowHide: TNotifyEvent = nil;
|
||||
ACaller: TControl = nil);
|
||||
begin
|
||||
ShowCalendarPopup(APosition, ADate, CalendarDisplaySettings, 0.0, 0.0, OnReturnDate, OnShowHide, Acaller)
|
||||
end;
|
||||
|
||||
{ TCalendarPopupForm }
|
||||
|
||||
procedure TCalendarPopupForm.FormCreate(Sender: TObject);
|
||||
@ -134,10 +150,12 @@ begin
|
||||
end;
|
||||
|
||||
procedure TCalendarPopupForm.Initialize(ADate: TDateTime;
|
||||
const DisplaySettings: TDisplaySettings);
|
||||
const DisplaySettings: TDisplaySettings; AMinDate, AMaxDate: TDateTime);
|
||||
begin
|
||||
Calendar.DateTime := ADate;
|
||||
Calendar.DisplaySettings:=DisplaySettings;
|
||||
Calendar.MinDate := AMinDate;
|
||||
Calendar.MaxDate := AMaxDate;
|
||||
end;
|
||||
|
||||
procedure TCalendarPopupForm.KeepInView(const PopupOrigin: TPoint);
|
||||
|
Loading…
Reference in New Issue
Block a user