From ecb135c2381c941f28a01e3192cfa05be6c995ae Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Wed, 20 Jun 2018 21:13:53 +0000 Subject: [PATCH] tvplanit: Keep start-to-end-time interval when start time is changed by TimeDialog in event editor. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6516 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/tvplanit/source/vpevnteditdlg.lfm | 2 -- components/tvplanit/source/vpevnteditdlg.pas | 25 +++++++++++++++++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/components/tvplanit/source/vpevnteditdlg.lfm b/components/tvplanit/source/vpevnteditdlg.lfm index 19bf3c9cf..1f2918607 100644 --- a/components/tvplanit/source/vpevnteditdlg.lfm +++ b/components/tvplanit/source/vpevnteditdlg.lfm @@ -675,7 +675,6 @@ object DlgEventEdit: TDlgEventEdit OnClick = IntervalUpDownClick Position = 0 TabOrder = 10 - Wrap = False end object ImgAlarm: TImage AnchorSideLeft.Control = AppointmentGroupBox @@ -805,7 +804,6 @@ object DlgEventEdit: TDlgEventEdit OnClick = AdvanceUpDownClick Position = 1 TabOrder = 14 - Wrap = False end object AlarmAdvanceType: TComboBox AnchorSideLeft.Control = AdvanceUpDown diff --git a/components/tvplanit/source/vpevnteditdlg.pas b/components/tvplanit/source/vpevnteditdlg.pas index d82da0048..1f6f07c12 100644 --- a/components/tvplanit/source/vpevnteditdlg.pas +++ b/components/tvplanit/source/vpevnteditdlg.pas @@ -138,6 +138,10 @@ type FDatastore: TVpCustomDatastore; AAVerifying: Boolean; CIVerifying: Boolean; + {$IFDEF NEW_TIME_EDIT} + procedure AcceptStartTimeHandler(Sender: TObject; var ATime: TDateTime; + var AcceptTime: Boolean); + {$ENDIF} procedure PopLists; procedure PositionControls; procedure LoadCaptions; @@ -151,15 +155,15 @@ type CatColorMap: TVpCategoryColorMap; Resource: TVpResource; ReturnCode: TEventEditDlgRtnType; - Conflicts : Integer; + Conflicts: Integer; TimeFormat: TVpTimeFormat; AlarmWavPath: string; - FLastEndTime : TDateTime; - + FLastEndTime: TDateTime; procedure PopulateDialog; procedure DePopulateDialog; end; + TVpEventEditDialog = class(TVpBaseDialog) protected {private} ceEditDlg: TDlgEventEdit; @@ -212,10 +216,25 @@ end; { TDlgEventEdit } +{$IFDEF NEW_TIME_EDIT} +procedure TDlgEventEdit.AcceptStartTimeHandler(Sender: TObject; + var ATime: TDateTime; var AcceptTime: Boolean); +var + dt: TDateTime; + enddt: TDateTime; +begin + dt := EndDate.Date + EndTime.Time - StartDate.Date - StartTime.Time; + enddt := StartDate.Date + ATime + dt; + EndDate.Date := trunc(enddt); + EndTime.Time := frac(enddt); +end; +{$ENDIF} + procedure TDlgEventEdit.FormCreate(Sender: TObject); begin {$IFDEF NEW_TIME_EDIT} StartTime := TTimeEdit.Create(self); + StartTime.OnAcceptTime := AcceptStartTimeHandler; {$ELSE} StartTime := TCombobox.Create(self); StartTime.ItemIndex := -1;