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

@ -94,7 +94,6 @@ object MainForm: TMainForm
TodayAttributes.BorderPen.Color = clBlue
TodayAttributes.BorderPen.Width = 3
WeekendAttributes.Font.Color = clBlack
OnHoliday = VpHoliday
end
object Splitter2: TSplitter
Cursor = crVSplit
@ -174,7 +173,6 @@ object MainForm: TMainForm
}
GutterWidth = 5
WrapStyle = wsNoFlow
OnHoliday = VpHoliday
end
object DaySelectorPanel: TPanel
Left = 0
@ -298,7 +296,6 @@ object MainForm: TMainForm
WeekStartsOn = dtMonday
Align = alClient
TabOrder = 2
OnHoliday = VpHoliday
end
end
object Tasks: TPage
@ -713,41 +710,41 @@ object MainForm: TMainForm
DrawingStyle = dsCoolTab
FolderCollection = <
item
Version = 'v1.12'
Version = 'v1.0.7'
Caption = 'Planner'
Enabled = True
FolderType = ftDefault
ItemCollection = <
item
Version = 'v1.12'
Version = 'v1.0.7'
Caption = 'Events'
IconIndex = 0
Name = 'NIEvents'
Tag = 0
end
item
Version = 'v1.12'
Version = 'v1.0.7'
Caption = 'Month view'
IconIndex = 5
Name = 'NIEventsByMonth'
Tag = 0
end
item
Version = 'v1.12'
Version = 'v1.0.7'
Caption = 'Week view'
IconIndex = 4
Name = 'NIEventsByWeek'
Tag = 0
end
item
Version = 'v1.12'
Version = 'v1.0.7'
Caption = 'Day view'
IconIndex = 3
Name = 'NIEventsByDay'
Tag = 0
end
item
Version = 'v1.12'
Version = 'v1.0.7'
Caption = 'Tasks'
Description = 'Show tasks'
IconIndex = 1
@ -755,7 +752,7 @@ object MainForm: TMainForm
Tag = 0
end
item
Version = 'v1.12'
Version = 'v1.0.7'
Caption = 'Contacts'
Description = 'Show address book'
IconIndex = 2
@ -767,20 +764,20 @@ object MainForm: TMainForm
Tag = 0
end
item
Version = 'v1.12'
Version = 'v1.0.7'
Caption = 'Maintenance'
Enabled = True
FolderType = ftDefault
ItemCollection = <
item
Version = 'v1.12'
Version = 'v1.0.7'
Caption = 'Resources'
IconIndex = 7
Name = 'NIResources'
Tag = 0
end
item
Version = 'v1.12'
Version = 'v1.0.7'
Caption = 'Settings'
IconIndex = 8
Name = 'NISettings'
@ -817,12 +814,12 @@ object MainForm: TMainForm
Printer.MarginUnits = imPercent
Printer.PrintFormats = <
item
Version = 'v1.12'
Version = 'v1.0.7'
DayInc = 0
DayIncUnits = duDay
Elements = <
item
Version = 'v1.12'
Version = 'v1.0.7'
Caption.Caption = 'Current week'
Caption.Font.Style = [fsItalic]
DayOffset = 0
@ -837,12 +834,12 @@ object MainForm: TMainForm
FormatName = 'Events of current week (dayview)'
end
item
Version = 'v1.12'
Version = 'v1.0.7'
DayInc = 0
DayIncUnits = duWeek
Elements = <
item
Version = 'v1.12'
Version = 'v1.0.7'
DayOffset = 0
DayOffsetUnits = duDay
ElementName = 'WeekView'
@ -856,12 +853,12 @@ object MainForm: TMainForm
FormatName = 'Events of current week (Week view)'
end
item
Version = 'v1.12'
Version = 'v1.0.7'
DayInc = 0
DayIncUnits = duDay
Elements = <
item
Version = 'v1.12'
Version = 'v1.0.7'
DayOffset = 0
DayOffsetUnits = duWeek
ElementName = 'TaskList'
@ -875,12 +872,12 @@ object MainForm: TMainForm
FormatName = 'Tasks of current week'
end
item
Version = 'v1.12'
Version = 'v1.0.7'
DayInc = 0
DayIncUnits = duDay
Elements = <
item
Version = 'v1.12'
Version = 'v1.0.7'
DayOffset = 0
DayOffsetUnits = duDay
ElementName = 'TaskList'
@ -896,11 +893,12 @@ object MainForm: TMainForm
end>
Printer.RightMargin = 5
Printer.TopMargin = 5
OnHoliday = VpHoliday
Left = 312
Top = 200
end
object VpResourceEditDialog1: TVpResourceEditDialog
Version = 'v1.12'
Version = 'v1.0.7'
Options = []
Placement.Position = mpCenter
Placement.Top = 10
@ -1322,7 +1320,7 @@ object MainForm: TMainForm
Top = 344
end
object VpPrintPreviewDialog1: TVpPrintPreviewDialog
Version = 'v1.12'
Version = 'v1.0.7'
ControlLink = VpControlLink1
EndDate = 42561.5151169907
MarginUnits = imPercent
@ -1337,7 +1335,7 @@ object MainForm: TMainForm
Top = 432
end
object VpPrintFormatEditDialog1: TVpPrintFormatEditDialog
Version = 'v1.12'
Version = 'v1.0.7'
ControlLink = VpControlLink1
Options = []
Placement.Position = mpCenter

View File

@ -364,6 +364,7 @@ type
{TVpLinkableControl}
TVpLinkableControl = class(TVpCustomControl)
protected{private}
FDataStore: TVpCustomDataStore;
@ -404,19 +405,22 @@ type
property OnMouseWheel;
end;
{TVpControlLink}
TVpControlLink = class(TVpComponent)
private
FPrinter: TVpPrinter;
FDataStore: TVpCustomDataStore;
FOnGetVariable : TVpOnGetVariableEvent;
FOnNoLocalizationFile : TVpNoLocalizationFile;
FOnPageStart : TVpOnPageStartEvent;
FOnPageEnd : TVpOnPageEndEvent;
FLocalization: TVpLocalization;
FLocalizationFile: string;
FDefaultCountry: string;
FCityStateZipFormat: String;
FOnGetVariable: TVpOnGetVariableEvent;
FOnHoliday: TVpHolidayEvent;
FOnNoLocalizationFile: TVpNoLocalizationFile;
FOnPageStart: TVpOnPageStartEvent;
FOnPageEnd: TVpOnPageEndEvent;
protected{private}
DependentList: TList;
procedure ReleaseDependents;
@ -431,6 +435,7 @@ type
procedure Attach(Sender: TComponent);
procedure Detach(Sender: TComponent);
function GetDependentList: TList;
function IsHoliday(ADate: TDate; out AHolidayName: String): Boolean;
procedure LoadLocalizationInfo (const FileName : string);
procedure Notify (Sender: TComponent; NotificationType: TVpNotificationType; const Value: Variant);
procedure TriggerOnGetVariable (Sender : TObject; VarName: string; Found: Boolean; var Value: string; var Change: TVpChangeVar);
@ -445,6 +450,7 @@ type
property LocalizationFile: string read FLocalizationFile write SetLocalizationFile;
property Printer: TVpPrinter read FPrinter write SetPrinter;
property OnGetVariable: TVpOnGetVariableEvent read FOnGetVariable write FOnGetVariable;
property OnHoliday: TVpHolidayEvent read FOnHoliday write FOnHoliday;
property OnNoLocalizationFile: TVpNoLocalizationFile read FOnNoLocalizationFile write FOnNoLocalizationFile;
property OnPageStart: TVpOnPageStartEvent read FOnPageStart write FOnPageStart;
property OnPageEnd: TVpOnPageEndEvent read FOnPageEnd write FOnPageEnd;
@ -1596,6 +1602,14 @@ begin
Result := DependentList;
end;
function TVpControlLink.IsHoliday(ADate: TDate; out AHolidayName: String): Boolean;
begin
AHolidayName := '';
if Assigned(FOnHoliday) then
FOnHoliday(Self, trunc(ADate), AHolidayName);
Result := AHolidayName <> '';
end;
procedure TVpControlLink.LoadLocalizationInfo (const FileName : string);
begin
LocalizationFile := FileName;

View File

@ -1464,7 +1464,6 @@ var
Hour1, Minute1, Second1: Word;
Hour2, Minute2, Second2: Word;
MSecond: Word;
TimeStr: string;
begin
if FTime = Value then
exit;

View File

@ -527,7 +527,7 @@ type
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 OnHoliday: TVpHolidayEvent read FOnHoliday write FOnHoliday; deprecated 'Use TControlLink.OnHoliday instead';
property OnModifyEvent: TVpOnModifyEvent read FOnModifyEvent write FOnModifyEvent;
property OnOwnerEditEvent: TVpEditEvent read FOwnerEditEvent write FOwnerEditEvent;
property OnClick;
@ -1005,10 +1005,14 @@ end;
function TVpDayView.IsHoliday(ADate: TDate; out AHolidayName: String): Boolean;
begin
if Assigned(FOnHoliday) then
AHolidayName := '';
if Assigned(FOnHoliday) then
begin
FOnHoliday(Self, trunc(ADate), AHolidayName);
Result := AHolidayName <> '';
end else
Result := FControlLink.IsHoliday(ADate, AHolidayName);
end;
procedure TVpDayView.LinkHandler(Sender: TComponent;

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 <> '';
end else
Result := FControlLink.IsHoliday(ADate, AHolidayName);
end;
procedure TVpGanttView.KeyDown(var Key: Word; Shift: TShiftState);

View File

@ -371,7 +371,7 @@ type
property OnAddEvent: TVpOnAddNewEvent read FOnAddEvent write FOnAddEvent;
property OnEventClick: TVpOnEventClick read FOnEventClick write FOnEventClick;
property OnEventDblClick: TVpOnEventClick read FOnEventDblClick write FOnEventDblClick;
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 OnOwnerEditEvent: TVpEditEvent read FOwnerEditEvent write FOwnerEditEvent;
end;
@ -653,8 +653,11 @@ function TVpMonthView.IsHoliday(ADate: TDate; out AHolidayName: String): Boolean
begin
AHolidayName := '';
if Assigned(FOnHoliday) then
begin
FOnHoliday(Self, ADate, AHolidayName);
Result := AHolidayName <> '';
end else
Result := FControlLink.IsHoliday(ADate, AHolidayName);
end;
procedure TVpMonthView.LinkHandler(Sender: TComponent;

View File

@ -14,6 +14,7 @@ object frmPrintPreview: TfrmPrintPreview
OnCreate = FormCreate
OnKeyDown = FormKeyDown
OnShow = FormShow
LCLVersion = '2.3.0.0'
object Panel1: TPanel
Left = 0
Height = 56
@ -49,7 +50,7 @@ object frmPrintPreview: TfrmPrintPreview
end
object ToolButton3: TToolButton
Left = 55
Height = 25
Height = 5
Top = 0
Caption = 'ToolButton3'
ImageIndex = 2
@ -85,7 +86,7 @@ object frmPrintPreview: TfrmPrintPreview
end
object ToolButton8: TToolButton
Left = 152
Height = 25
Height = 5
Top = 0
Caption = 'ToolButton8'
ImageIndex = 6

View File

@ -164,7 +164,8 @@ implementation
{$ENDIF}
uses
VpConst, VpPrtFmt;
VpConst, // needed for define VP_LCL_SCALING
VpPrtFmt;
{ TfrmPrintPreview }

View File

@ -372,7 +372,7 @@ type
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 OnHoliday: TVpHolidayEvent read FOnHoliday write FOnHoliday; deprecated 'Use TControlLink.OnHoliday instead';
property OnModifyEvent: TVpOnModifyEvent read FOnModifyEvent write FOnModifyEvent;
property OnOwnerEditEvent: TVpEditEvent read FOwnerEditEvent write FOwnerEditEvent;
end;
@ -779,8 +779,11 @@ function TVpWeekView.IsHoliday(ADate: TDate; out AHolidayName: String): Boolean;
begin
AHolidayName := '';
if Assigned(FOnHoliday) then
begin
FOnHoliday(Self, ADate, AHolidayName);
Result := AHolidayName <> '';
end else
Result := FControlLink.IsHoliday(ADate, AHolidayName);
end;
procedure TVpWeekView.LinkHandler(Sender: TComponent;