diff --git a/components/tvplanit/source/vpbaseds.pas b/components/tvplanit/source/vpbaseds.pas index dd4ee8ee5..eca9fe2e0 100644 --- a/components/tvplanit/source/vpbaseds.pas +++ b/components/tvplanit/source/vpbaseds.pas @@ -120,6 +120,7 @@ type TVpOnAddNewEvent = procedure (Sender: TObject; Event: TVpEvent) of object; TVpOnModifyEvent = procedure (Sender: TObject; Event: TVpEvent) of object; + TVpOnDeletingEvent = procedure (Sender: TObject; Event: TVpEvent; var DoIt: Boolean) of object; { resource events } diff --git a/components/tvplanit/source/vpdayview.pas b/components/tvplanit/source/vpdayview.pas index 1d77d497b..90bd3143b 100644 --- a/components/tvplanit/source/vpdayview.pas +++ b/components/tvplanit/source/vpdayview.pas @@ -291,6 +291,7 @@ type FOnAfterDrawEvent: TVpOnDVAfterDrawEvent; FOnAddEvent: TVpOnAddNewEvent; FOnModifyEvent: TVpOnModifyEvent; + FOnDeletingEvent: TVpOnDeletingEvent; { internal variables } dvClickTimer: TTimer; dvLoaded: Boolean; @@ -529,6 +530,7 @@ type property OnAddEvent: TVpOnAddNewEvent read FOnAddEvent write FOnAddEvent; property OnAfterDrawEvent: TVpOnDVAfterDrawEvent read FOnAfterDrawEvent write FOnAfterDrawEvent; property OnBeforeDrawEvent: TVpOnDVBeforeDrawEvent read FOnBeforeDrawEvent write FOnBeforeDrawEvent; + property OnDeletingEvent: TVpOnDeletingEvent read FOnDeletingEvent write FOnDeletingEvent; property OnDrawIcons: TVpOnDVDrawIcons read FOnDrawIcons Write FOnDrawIcons; property OnHoliday: TVpHolidayEvent read FOnHoliday write FOnHoliday; property OnModifyEvent: TVpOnModifyEvent read FOnModifyEvent write FOnModifyEvent; @@ -1033,6 +1035,11 @@ begin DoIt := not Verify; if FActiveEvent <> nil then begin + if Assigned(FOnDeletingEvent) then + begin + DoIt := true; + FOnDeletingEvent(self, FActiveEvent, DoIt); + end else if Verify then DoIt := (MessageDlg(RSConfirmDeleteEvent + LineEnding2 + RSPermanent, mtConfirmation, [mbYes, mbNo], 0) = mrYes); diff --git a/components/tvplanit/source/vpmonthview.pas b/components/tvplanit/source/vpmonthview.pas index 079394cf6..a0892bda2 100644 --- a/components/tvplanit/source/vpmonthview.pas +++ b/components/tvplanit/source/vpmonthview.pas @@ -1283,19 +1283,16 @@ procedure TVpMonthView.PopupToday(Sender: TObject); begin Date := Now; end; -{=====} procedure TVpMonthView.PopupNextMonth(Sender: TObject); begin mvSpinButtonClick(self, btNext); end; -{=====} procedure TVpMonthView.PopupPrevMonth(Sender: TObject); begin mvSpinButtonClick(self, btPrev); end; -{=====} procedure TVpMonthView.PopupNextYear(Sender: TObject); var @@ -1304,7 +1301,6 @@ begin DecodeDate(Date, Y, M, D); Date := EncodeDate(Y + 1, M, 1); end; -{=====} procedure TVpMonthView.PopupPrevYear(Sender: TObject); var @@ -1351,7 +1347,6 @@ begin mvActiveEventRec := mvEventArray[I].Rec; end; end; -{=====} procedure TVpMonthView.mvSetDateByCoord(APoint: TPoint); var diff --git a/components/tvplanit/source/vpweekview.pas b/components/tvplanit/source/vpweekview.pas index 5b375e865..170573f53 100644 --- a/components/tvplanit/source/vpweekview.pas +++ b/components/tvplanit/source/vpweekview.pas @@ -164,6 +164,7 @@ type FOwnerEditEvent: TVpEditEvent; FOnAddEvent: TVpOnAddNewEvent; FOnModifyEvent: TVpOnModifyEvent; + FOnDeletingEvent: TVpOnDeletingEvent; { internal variables } wvInLinkHandler: Boolean; wvClickTimer: TTimer; @@ -326,6 +327,7 @@ type property AfterEdit : TVpAfterEditEvent read FAfterEdit write FAfterEdit; property BeforeEdit: TVpBeforeEditEvent read FBeforeEdit write FBeforeEdit; property OnAddEvent: TVpOnAddNewEvent read FOnAddEvent write FOnAddEvent; + property OnDeletingEvent: TVpOnDeletingEvent read FOnDeletingEvent write FOnDeletingEvent; property OnHoliday: TVpHolidayEvent read FOnHoliday write FOnHoliday; property OnModifyEvent: TVpOnModifyEvent read FOnModifyEvent write FOnModifyEvent; property OnOwnerEditEvent: TVpEditEvent read FOwnerEditEvent write FOwnerEditEvent; @@ -766,6 +768,11 @@ begin DoIt := not Verify; if ActiveEvent <> nil then begin + if Assigned(FOnDeletingEvent) then + begin + DoIt := true; + FOnDeletingEvent(Self, ActiveEvent, DoIt); + end else if Verify then DoIt := (MessageDlg(RSConfirmDeleteEvent + LineEnding2 + RSPermanent, mtConfirmation, [mbYes, mbNo], 0) = mrYes);