tvplanit: Move holiday detection event to TVpControlLink; deprecate that of TVpDayView etc.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8492 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2022-09-19 21:32:43 +00:00
parent 45da1b1781
commit b864dfc278
9 changed files with 90 additions and 65 deletions

View File

@@ -329,7 +329,7 @@ type
// new events
property OnAddEvent: TVpOnAddNewEvent read FOnAddEvent write FOnAddEvent;
property OnDeletingEvent: TVpOnDeletingEvent read FOnDeletingEvent write FOnDeletingEvent;
property OnHoliday: TVpHolidayEvent read FOnHoliday write FOnHoliday;
property OnHoliday: TVpHolidayEvent read FOnHoliday write FOnHoliday; deprecated 'Use TControlLink.OnHoliday instead';
property OnModifyEvent: TVpOnModifyEvent read FOnModifyEvent write FOnModifyEvent;
property OwnerEditEvent: TVpEditEvent read FOwnerEditEvent write FOwnerEditEvent;
end;
@@ -816,8 +816,7 @@ begin
end;
{ Determines the date when the earliest event starts, and the date when the
latest event ends.
Stores them in the internal variables FFirstDate and FLastDate. }
latest event ends. }
procedure TVpGanttView.GetEventDateRange(out AFirstDate, ALastDate: TDate);
var
i: Integer;
@@ -826,18 +825,18 @@ var
begin
if (Datastore = nil) or (Datastore.Resource = nil) or (Datastore.Resource.Schedule.EventCount = 0) then
begin
FFirstDate := NO_DATE;
FLastDate := NO_DATE;
AFirstDate := NO_DATE;
ALastDate := NO_DATE;
end else
begin
event := Datastore.Resource.Schedule.GetEvent(0);
FFirstDate := DatePart(event.StartTime);
FLastDate := -99999;
AFirstDate := DatePart(event.StartTime);
ALastDate := -99999;
for i := 0 to Datastore.Resource.Schedule.EventCount-1 do
begin
event := Datastore.Resource.Schedule.GetEvent(i);
d := DatePart(event.EndTime);
if d > FLastDate then FLastDate := d;
if d > ALastDate then ALastDate := d;
end;
end;
end;
@@ -968,8 +967,11 @@ function TVpGanttView.IsHoliday(ADate: TDate; out AHolidayName: String): Boolean
begin
AHolidayName := '';
if Assigned(FOnHoliday) then
begin
FOnHoliday(Self, ADate, AHolidayName);
Result := AHolidayName <> '';
Result := AHolidayName <> '';
end else
Result := FControlLink.IsHoliday(ADate, AHolidayName);
end;
procedure TVpGanttView.KeyDown(var Key: Word; Shift: TShiftState);