From 4c792b0295decf6b1ae02c0f6cd08fc29616a0a8 Mon Sep 17 00:00:00 2001 From: Bart <9132501-flyingsheep@users.noreply.gitlab.com> Date: Tue, 19 Jul 2022 19:18:37 +0200 Subject: [PATCH] TCalendar: factor out ApplyLimits and RemoveLimits. No functional changes. --- lcl/calendar.pp | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/lcl/calendar.pp b/lcl/calendar.pp index e10e98b351..1acd1b9a85 100644 --- a/lcl/calendar.pp +++ b/lcl/calendar.pp @@ -103,6 +103,8 @@ type procedure SetDate(const AValue: String); procedure SetFirstDayOfWeek(const AValue: TCalDayOfWeek); function IsLimited: Boolean; + procedure ApplyLimits(const AMin, AMax: TDateTime); + procedure RemoveLimits; protected class procedure WSRegisterClass; override; procedure LMChanged(var Message: TLMessage); message LM_CHANGED; @@ -340,6 +342,20 @@ begin Result := (CompareValue(FMinDate, FMaxDate, 1E-9) = LessThanValue); end; +procedure TCustomCalendar.ApplyLimits(const AMin, AMax: TDateTime); +begin + if (GetDateTime > AMax) then + SetDateTime(AMax) + else if (GetDateTime < AMin) then + SetDateTime(AMin); + TWSCustomCalendarClass(WidgetSetClass).SetMinMaxDate(Self,AMin, AMax); +end; + +procedure TCustomCalendar.RemoveLimits; +begin + TWSCustomCalendarClass(WidgetSetClass).RemoveMinMaxDates(Self); +end; + procedure TCustomCalendar.GetProps; begin if HandleAllocated and ([csLoading,csDestroying]*ComponentState=[]) then @@ -362,16 +378,12 @@ begin FMaxDate := AValue; if IsLimited then begin - if (GetDateTime > FMaxDate) then - SetDateTime(FMaxDate) - else if (GetDateTime < FMinDate) then - SetDateTime(FMinDate); - TWSCustomCalendarClass(WidgetSetClass).SetMinMaxDate(Self,FMinDate, FMaxDate); + ApplyLimits(FMinDate, FMaxDate); end else begin if OldIsLimited then - TWSCustomCalendarClass(WidgetSetClass).RemoveMinMaxDates(Self); + RemoveLimits; end; end; @@ -384,17 +396,11 @@ begin OldIsLimited := IsLimited; FMinDate := AValue; if IsLimited then - begin - if (GetDateTime > FMaxDate) then - SetDateTime(FMaxDate) - else if (GetDateTime < FMinDate) then - SetDateTime(FMinDate); - TWSCustomCalendarClass(WidgetSetClass).SetMinMaxDate(Self,FMinDate, FMaxDate); - end + ApplyLimits(FMinDate, FMaxDate) else begin if OldIsLimited then - TWSCustomCalendarClass(WidgetSetClass).RemoveMinMaxDates(Self); + RemoveLimits; end; end;