From b7f5c7b4af5ba31999c360e5c9815d2746dba6b5 Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Fri, 9 Aug 2019 21:03:29 +0000 Subject: [PATCH] jvcllaz: Fix JvTimeFrame demo crashing at program end from week view after date was scrolled into a date range without appointments. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7110 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- .../examples/JvTimeFramework/JvTimeFrameDemo.lpi | 3 +++ .../jvcllaz/examples/JvTimeFramework/tfmain.pas | 5 ++++- .../jvcllaz/run/JvTimeFramework/jvtfmanager.pas | 12 +++++++++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/components/jvcllaz/examples/JvTimeFramework/JvTimeFrameDemo.lpi b/components/jvcllaz/examples/JvTimeFramework/JvTimeFrameDemo.lpi index c46480f19..a02554bbc 100644 --- a/components/jvcllaz/examples/JvTimeFramework/JvTimeFrameDemo.lpi +++ b/components/jvcllaz/examples/JvTimeFramework/JvTimeFrameDemo.lpi @@ -114,6 +114,9 @@ + + + diff --git a/components/jvcllaz/examples/JvTimeFramework/tfmain.pas b/components/jvcllaz/examples/JvTimeFramework/tfmain.pas index eb7a978e3..f32d5d906 100644 --- a/components/jvcllaz/examples/JvTimeFramework/tfmain.pas +++ b/components/jvcllaz/examples/JvTimeFramework/tfmain.pas @@ -385,12 +385,15 @@ end; procedure TMainForm.PrevDateButtonClick(Sender: TObject); begin JvTFDays1.PrevDate; + JvTFMonths1.DisplayDate := JvTFDays1.CurrentDate; + JvTFWeeks1.DisplayDate := JvTFDays1.CurrentDate; end; procedure TMainForm.NextDateButtonClick(Sender: TObject); begin JvTFDays1.NextDate; JvTFMonths1.DisplayDate := JvTFDays1.CurrentDate; + JvTFWeeks1.DisplayDate := JvTFDays1.CurrentDate; end; procedure TMainForm.GotoDatePickerChange(Sender: TObject); @@ -398,7 +401,7 @@ begin // GotoDatePicker.OnCloseUp should also point to this handler JvTFDays1.GotoDate(GotoDatePicker.Date); JvTFWeeks1.DisplayDate := GotoDatePicker.Date; - JvTFWeeks1.DisplayDate := GotoDatePicker.Date; + JvTFMonths1.DisplayDate := GotoDatePicker.Date; end; procedure TMainForm.GotoDatePickerUserInput(Sender: TObject; diff --git a/components/jvcllaz/run/JvTimeFramework/jvtfmanager.pas b/components/jvcllaz/run/JvTimeFramework/jvtfmanager.pas index 00617f282..8bf9413da 100644 --- a/components/jvcllaz/run/JvTimeFramework/jvtfmanager.pas +++ b/components/jvcllaz/run/JvTimeFramework/jvtfmanager.pas @@ -4067,13 +4067,23 @@ procedure TJvTFControl.ReleaseSchedule(const SchedName: string; var SchedID: string; begin + if Assigned(ScheduleManager) then begin + SchedID := TJvTFScheduleManager.GetScheduleID(SchedName, SchedDate); + if FSchedules.IndexOf(SchedID) > -1 then + ScheduleManager.ReleaseSchedule(Self, SchedName, SchedDate) + end; + +{ wp: + original code - crashes sometimes at program end in GetScheduleID + when ScheduleManager is nil + SchedID := TJvTFScheduleManager.GetScheduleID(SchedName, SchedDate); if FSchedules.IndexOf(SchedID) > -1 then if Assigned(ScheduleManager) then ScheduleManager.ReleaseSchedule(Self, SchedName, SchedDate) else raise EJvTFScheduleManagerError.CreateRes(@RsECouldNotReleaseSchedule); - + } end; procedure TJvTFControl.ReleaseSchedules;