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
This commit is contained in:
wp_xxyyzz
2018-06-20 21:13:53 +00:00
parent 98d7c7e56c
commit ecb135c238
2 changed files with 22 additions and 5 deletions

View File

@ -675,7 +675,6 @@ object DlgEventEdit: TDlgEventEdit
OnClick = IntervalUpDownClick OnClick = IntervalUpDownClick
Position = 0 Position = 0
TabOrder = 10 TabOrder = 10
Wrap = False
end end
object ImgAlarm: TImage object ImgAlarm: TImage
AnchorSideLeft.Control = AppointmentGroupBox AnchorSideLeft.Control = AppointmentGroupBox
@ -805,7 +804,6 @@ object DlgEventEdit: TDlgEventEdit
OnClick = AdvanceUpDownClick OnClick = AdvanceUpDownClick
Position = 1 Position = 1
TabOrder = 14 TabOrder = 14
Wrap = False
end end
object AlarmAdvanceType: TComboBox object AlarmAdvanceType: TComboBox
AnchorSideLeft.Control = AdvanceUpDown AnchorSideLeft.Control = AdvanceUpDown

View File

@ -138,6 +138,10 @@ type
FDatastore: TVpCustomDatastore; FDatastore: TVpCustomDatastore;
AAVerifying: Boolean; AAVerifying: Boolean;
CIVerifying: Boolean; CIVerifying: Boolean;
{$IFDEF NEW_TIME_EDIT}
procedure AcceptStartTimeHandler(Sender: TObject; var ATime: TDateTime;
var AcceptTime: Boolean);
{$ENDIF}
procedure PopLists; procedure PopLists;
procedure PositionControls; procedure PositionControls;
procedure LoadCaptions; procedure LoadCaptions;
@ -155,11 +159,11 @@ type
TimeFormat: TVpTimeFormat; TimeFormat: TVpTimeFormat;
AlarmWavPath: string; AlarmWavPath: string;
FLastEndTime: TDateTime; FLastEndTime: TDateTime;
procedure PopulateDialog; procedure PopulateDialog;
procedure DePopulateDialog; procedure DePopulateDialog;
end; end;
TVpEventEditDialog = class(TVpBaseDialog) TVpEventEditDialog = class(TVpBaseDialog)
protected {private} protected {private}
ceEditDlg: TDlgEventEdit; ceEditDlg: TDlgEventEdit;
@ -212,10 +216,25 @@ end;
{ TDlgEventEdit } { 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); procedure TDlgEventEdit.FormCreate(Sender: TObject);
begin begin
{$IFDEF NEW_TIME_EDIT} {$IFDEF NEW_TIME_EDIT}
StartTime := TTimeEdit.Create(self); StartTime := TTimeEdit.Create(self);
StartTime.OnAcceptTime := AcceptStartTimeHandler;
{$ELSE} {$ELSE}
StartTime := TCombobox.Create(self); StartTime := TCombobox.Create(self);
StartTime.ItemIndex := -1; StartTime.ItemIndex := -1;