From 1ce54877a28a322794b2711ab500bc3107c8e5ef Mon Sep 17 00:00:00 2001 From: Bart <9132501-flyingsheep@users.noreply.gitlab.com> Date: Fri, 16 Sep 2022 18:32:06 +0200 Subject: [PATCH] TDateEdit: avoid OnChange being issued in Loaded. Fixes issue described in https://forum.lazarus.freepascal.org/index.php/topic,60538.msg453740.html#msg453740 (cherry picked from commit e7e585f13d17e29f2ea075cf9a302c8f71b65b3d) --- lcl/editbtn.pas | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lcl/editbtn.pas b/lcl/editbtn.pas index 0b52b8179e..acb39deabb 100644 --- a/lcl/editbtn.pas +++ b/lcl/editbtn.pas @@ -1705,11 +1705,15 @@ begin end; procedure TDateEdit.Loaded; +var + SavedOnChange: TNotifyEvent; begin - inherited Loaded; //Forces a valid Text in the control if not (csDesigning in ComponentState) then SetDate(FDate); + //avoid OnChange (regression introduced by #8ce29506c500e46d65b9a067bf446fd91224e6c0, happens when DirectInput=True and DefaultToday=True) + //the FEdit's OnChange is only forwarded once the whole component has been loaded, so call inherited after setting the text, not before + inherited Loaded; end; Function ParseDate(S : String; Order : TDateOrder; Def: TDateTime) : TDateTime;