Qt5: Implemented SetMinMaxDate for QtCalendar

This commit is contained in:
Željan Rikalo 2022-07-23 14:48:30 +02:00
parent 688150cb2c
commit f97126e5d7
2 changed files with 36 additions and 0 deletions

View File

@ -1865,6 +1865,8 @@ type
function GetDateTime: TDateTime;
procedure SetDateTime(const AValue: TDateTime);
procedure SetSelectedDate(const AValue: QDateH);
procedure SetMinDate(AMinDate: TDateTime);
procedure SetMaxDate(AMaxDate: TDateTime);
protected
function CreateWidget(const AParams: TCreateParams):QWidgetH; override;
public
@ -1886,6 +1888,8 @@ type
procedure SignalSelectionChanged; cdecl;
procedure SignalCurrentPageChanged(p1, p2: Integer); cdecl;
property DateTime: TDateTime read GetDateTime write SetDateTime;
property MinDate: TDateTime write SetMinDate;
property MaxDate: TDateTime write SetMaxDate;
end;
// for page control / notebook
@ -17782,6 +17786,26 @@ begin
QCalendarWidget_setSelectedDate(QCalendarWidgetH(Widget), AValue);
end;
procedure TQtCalendar.SetMinDate(AMinDate: TDateTime);
var
Date: QDateH;
begin
DecodeDate(AMinDate, AYear, AMonth, ADay);
Date := QDate_create(AYear, AMonth, ADay);
QCalendarWidget_setMinimumDate(QCalendarWidgetH(Widget),Date);
QDate_destroy(Date);
end;
procedure TQtCalendar.SetMaxDate(AMaxDate: TDateTime);
var
Date: QDateH;
begin
DecodeDate(AMaxDate, AYear, AMonth, ADay);
Date := QDate_create(AYear, AMonth, ADay);
QCalendarWidget_setMaximumDate(QCalendarWidgetH(Widget),Date);
QDate_destroy(Date);
end;
{------------------------------------------------------------------------------
Function: TQtCalendar.CreateWidget
Params: None

View File

@ -42,6 +42,7 @@ type
class procedure SetDateTime(const ACalendar: TCustomCalendar; const ADateTime: TDateTime); override;
class procedure SetDisplaySettings(const ACalendar: TCustomCalendar; const ADisplaySettings: TDisplaySettings); override;
class procedure SetFirstDayOfWeek(const ACalendar: TCustomCalendar; const ADayOfWeek: TCalDayOfWeek); override;
class procedure SetMinMaxDate(const ACalendar: TCustomCalendar; AMinDate, AMaxDate: TDateTime); override;
end;
@ -143,4 +144,15 @@ begin
QtCalendar.EndUpdate;
end;
class procedure TQtWSCustomCalendar.SetMinMaxDate(const ACalendar: TCustomCalendar; AMinDate, AMaxDate: TDateTime);
var
QtCalendar: TQtCalendar;
begin
QtCalendar := TQtCalendar(ACalendar.Handle);
QtCalendar.BeginUpdate;
QtCalendar.MinDate := AMinDate;
QtCalendar.MaxDate := AMaxDate;
QtCalendar.EndUpdate;
end;
end.