Componentes.Terceros.DevExp.../internal/x.46/2/ExpressPrinting System/Sources/dxPSEvnt.pas

351 lines
13 KiB
ObjectPascal

{*******************************************************************}
{ }
{ Developer Express Visual Component Library }
{ ExpressPrinting System(tm) COMPONENT SUITE }
{ }
{ Copyright (C) 1998-2009 Developer Express Inc. }
{ ALL RIGHTS RESERVED }
{ }
{ The entire coVisntents of this file is protected by U.S. and }
{ International Copyright Laws. Unauthorized reproduction, }
{ reverse-engineering, and distribution of all or any portion of }
{ the code contained in this file is strictly prohibited and may }
{ result in severe civil and criminal penalties and will be }
{ prosecuted to the maximum extent possible under the law. }
{ }
{ RESTRICTIONS }
{ }
{ THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES }
{ (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE }
{ SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER IS }
{ LICENSED TO DISTRIBUTE THE EXPRESSPRINTINGSYSTEM AND }
{ ALL ACCOMPANYING VCL CONTROLS AS PART OF AN }
{ EXECUTABLE PROGRAM ONLY. }
{ }
{ THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED }
{ FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE }
{ COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE }
{ AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT }
{ AND PERMISSION FROM DEVELOPER EXPRESS INC. }
{ }
{ CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON }
{ ADDITIONAL RESTRICTIONS. }
{ }
{*******************************************************************}
unit dxPSEvnt;
interface
{$I cxVer.inc}
uses
Classes, dxPSESys, dxPrnPg, dxPgsDlg, dxPSCore;
type
TdxSMPageParamsChangedEvent = class(TdxEvent)
private
FPrintStyle: TBasedxPrintStyle;
FUpdateCodes: TdxPrinterPageUpdateCodes;
public
constructor Create(ASender: TObject; APrintStyle: TBasedxPrintStyle; AUpdateCodes: TdxPrinterPageUpdateCodes);
property PrintStyle: TBasedxPrintStyle read FPrintStyle;
property UpdateCodes: TdxPrinterPageUpdateCodes read FUpdateCodes;
end;
TdxSMStyleListChangedEvent = class(TdxEvent);
TdxStyleListChangedSubscriber = class(TdxEventSubscriber)
private
FOnStyleListChanged: TNotifyEvent;
protected
procedure DoProcessEvent; override;
public
procedure StyleListChanged(Sender: TObject); dynamic;
property OnStyleListChanged: TNotifyEvent read FOnStyleListChanged write FOnStyleListChanged;
end;
TdxPageParamsChangedSubscriber = class(TdxEventSubscriber)
private
FOnPageParamsChanged: TdxPageParamsChangedEvent;
protected
procedure DoProcessEvent; override;
public
procedure PageParamsChanged(Sender: TObject; AStyle: TBasedxPrintStyle; AUpdateCodes: TdxPrinterPageUpdateCodes); dynamic;
property OnPageParamsChanged: TdxPageParamsChangedEvent read FOnPageParamsChanged write FOnPageParamsChanged;
end;
TdxComponentPrinterEvent = class(TdxEvent)
private
function GetComponentPrinter: TdxComponentPrinter;
public
property ComponentPrinter: TdxComponentPrinter read GetComponentPrinter;
end;
TdxPSPrintEvent = class(TdxComponentPrinterEvent)
private
FPageCount: Integer;
FPageIndex: Integer;
FReportLink: TBasedxReportLink;
FStage: TdxPSPrintStage;
public
constructor Create(Sender: TObject; AReportLink: TBasedxReportLink;
APageIndex, APageCount: Integer; AStage: TdxPSPrintStage);
property PageCount: Integer read FPageCount;
property PageIndex: Integer read FPageIndex;
property ReportLink: TBasedxReportLink read FReportLink;
property Stage: TdxPSPrintStage read FStage;
end;
TdxPSBuildEvent = class(TdxComponentPrinterEvent)
private
FPercentCompleted: Double;
FReportLink: TBasedxReportLink;
FStage: TdxPSBuildStage;
public
constructor Create(Sender: TObject; AReportLink: TBasedxReportLink;
const APercentCompleted: Double; AStage: TdxPSBuildStage);
property PercentCompleted: Double read FPercentCompleted;
property ReportLink: TBasedxReportLink read FReportLink;
property Stage: TdxPSBuildStage read FStage;
end;
TdxPSPrintReportSubscriber = class(TdxEventSubscriber)
private
FOnEndPrint: TdxReportLinkNotifyEvent;
FOnProgressPrint: TdxNewPageEvent;
FOnStartPrint: TdxStartPrintEvent;
protected
procedure DoProcessEvent; override;
public
procedure EndPrint(Sender: TObject; AReportLink: TBasedxReportLink); dynamic;
procedure ProgressPrint(Sender: TObject; AReportLink: TBasedxReportLink; APageIndex: Integer); dynamic;
procedure StartPrint(Sender: TObject; AReportLink: TBasedxReportLink; APageCount: Integer); dynamic;
property OnEndPrint: TdxReportLinkNotifyEvent read FOnEndPrint write FOnEndPrint;
property OnProgressPrint: TdxNewPageEvent read FOnProgressPrint write FOnProgressPrint;
property OnStartPrint: TdxStartPrintEvent read FOnStartPrint write FOnStartPrint;
end;
TdxPSBuildReportSubscriber = class(TdxEventSubscriber)
private
FOnEndGenerateReport: TdxReportLinkNotifyEvent;
FOnGenerateReportProgress: TdxGenerateReportProgressEvent;
FOnStartGenerateReport: TdxReportLinkNotifyEvent;
protected
procedure DoProcessEvent; override;
public
procedure EndBuild(Sender: TObject; AReportLink: TBasedxReportLink); dynamic;
procedure ProgressBuild(Sender: TObject; AReportLink: TBasedxReportLink; APercentCompleted: Double); dynamic;
procedure StartBuild(Sender: TObject; AReportLink: TBasedxReportLink); dynamic;
property OnEndGenerateReport: TdxReportLinkNotifyEvent read FOnEndGenerateReport write FOnEndGenerateReport;
property OnGenerateReportProgress: TdxGenerateReportProgressEvent read FOnGenerateReportProgress write FOnGenerateReportProgress;
property OnStartGenerateReport: TdxReportLinkNotifyEvent read FOnStartGenerateReport write FOnStartGenerateReport;
end;
TdxHFTextEntriesChangedEvent = class(TdxEvent);
TdxNoParamsEvent = procedure of object;
TdxHFTextEntriesChangedSubscriber = class(TdxEventSubscriber)
private
FOnHFTextEntriesChanged: TdxNoParamsEvent;
protected
procedure DoProcessEvent; override;
public
property OnHFTextEntriesChanged: TdxNoParamsEvent read FOnHFTextEntriesChanged write FOnHFTextEntriesChanged;
end;
TdxHFTextEntryChooseEvent = class(TdxEvent)
private
FEntry: string;
public
constructor Create(Sender: TObject; const AEntry: string);
property Entry: string read FEntry;
end;
TdxHFTextEntryEvent = procedure(Sender: TObject; const AEntry: string) of object;
TdxHFTextEntryChooseSubscriber = class(TdxEventSubscriber)
private
FOnHFTextEntryChoose: TdxHFTextEntryEvent;
protected
procedure DoProcessEvent; override;
public
property OnHFTextEntryChoose: TdxHFTextEntryEvent read FOnHFTextEntryChoose write FOnHFTextEntryChoose;
end;
implementation
{ TdxSMPageParamsChangedEvent }
constructor TdxSMPageParamsChangedEvent.Create(ASender: TObject;
APrintStyle: TBasedxPrintStyle; AUpdateCodes: TdxPrinterPageUpdateCodes);
begin
inherited Create(ASender);
FPrintStyle := APrintStyle;
FUpdateCodes := AUpdateCodes;
end;
{ TdxStyleListChangedSubscriber }
procedure TdxStyleListChangedSubscriber.DoProcessEvent;
begin
if ActiveEvent is TdxSMStyleListChangedEvent then
StyleListChanged(ActiveEvent.Sender)
end;
procedure TdxStyleListChangedSubscriber.StyleListChanged(Sender: TObject);
begin
if Assigned(FOnStyleListChanged) then FOnStyleListChanged(Sender);
end;
{ TdxPageParamsChangedSubscriber }
procedure TdxPageParamsChangedSubscriber.DoProcessEvent;
begin
if ActiveEvent is TdxSMPageParamsChangedEvent then
with TdxSMPageParamsChangedEvent(ActiveEvent) do
PageParamsChanged(PrintStyle.PrinterPage, PrintStyle, UpdateCodes);
end;
procedure TdxPageParamsChangedSubscriber.PageParamsChanged(Sender: TObject;
AStyle: TBasedxPrintStyle; AUpdateCodes: TdxPrinterPageUpdateCodes);
begin
if Assigned(FOnPageParamsChanged) then
FOnPageParamsChanged(TdxPrinterPage(Sender), AStyle, AUpdateCodes);
end;
{ TdxComponentPrinterEvent }
function TdxComponentPrinterEvent.GetComponentPrinter: TdxComponentPrinter;
begin
Result := TdxComponentPrinter(Sender);
end;
{ TdxPSPrintEvent }
constructor TdxPSPrintEvent.Create(Sender: TObject; AReportLink: TBasedxReportLink;
APageIndex, APageCount: Integer; AStage: TdxPSPrintStage);
begin
inherited Create(Sender);
FReportLink := AReportLink;
FPageIndex := APageIndex;
FPageCount := APageCount;
FStage := AStage;
end;
{ TdxPSBuildEvent }
constructor TdxPSBuildEvent.Create(Sender: TObject; AReportLink: TBasedxReportLink;
const APercentCompleted: Double; AStage: TdxPSBuildStage);
begin
inherited Create(Sender);
FReportLink := AReportLink;
FPercentCompleted := APercentCompleted;
FStage := AStage;
end;
{ TdxPSBuildReportSubscriber }
procedure TdxPSBuildReportSubscriber.DoProcessEvent;
begin
if ActiveEvent is TdxPSBuildEvent then
with TdxPSBuildEvent(ActiveEvent) do
case Stage of
bsStart:
StartBuild(ComponentPrinter, ReportLink);
bsProgress:
ProgressBuild(ComponentPrinter, ReportLink, PercentCompleted);
bsEnd:
EndBuild(ComponentPrinter, ReportLink);
end;
end;
procedure TdxPSBuildReportSubscriber.EndBuild(Sender: TObject;
AReportLink: TBasedxReportLink);
begin
if Assigned(FOnEndGenerateReport) then
FOnEndGenerateReport(Sender, AReportLink);
end;
procedure TdxPSBuildReportSubscriber.ProgressBuild(Sender: TObject;
AReportLink: TBasedxReportLink; APercentCompleted: Double);
begin
if Assigned(FOnGenerateReportProgress) then
FOnGenerateReportProgress(Sender, AReportLink, APercentCompleted);
end;
procedure TdxPSBuildReportSubscriber.StartBuild(Sender: TObject;
AReportLink: TBasedxReportLink);
begin
if Assigned(FOnStartGenerateReport) then
FOnStartGenerateReport(Sender, AReportLink);
end;
{ TdxPSPrintReportSubscriber }
procedure TdxPSPrintReportSubscriber.DoProcessEvent;
begin
if ActiveEvent is TdxPSPrintEvent then
with TdxPSPrintEvent(ActiveEvent) do
case Stage of
psStart:
StartPrint(ComponentPrinter, ReportLink, PageCount);
psProgress:
ProgressPrint(ComponentPrinter, ReportLink, PageIndex);
psEnd:
EndPrint(ComponentPrinter, ReportLink);
end;
end;
procedure TdxPSPrintReportSubscriber.EndPrint(Sender: TObject;
AReportLink: TBasedxReportLink);
begin
if Assigned(FOnEndPrint) then FOnEndPrint(Sender, AReportLink);
end;
procedure TdxPSPrintReportSubscriber.ProgressPrint(Sender: TObject;
AReportLink: TBasedxReportLink; APageIndex: Integer);
begin
if Assigned(FOnProgressPrint) then
FOnProgressPrint(Sender, AReportLink, APageIndex);
end;
procedure TdxPSPrintReportSubscriber.StartPrint(Sender: TObject;
AReportLink: TBasedxReportLink; APageCount: Integer);
begin
if Assigned(FOnStartPrint) then
FOnStartPrint(Sender, AReportLink, APageCount);
end;
{ TdxHFTextEntriesChangedSubscriber }
procedure TdxHFTextEntriesChangedSubscriber.DoProcessEvent;
begin
if ActiveEvent is TdxHFTextEntriesChangedEvent then
if Assigned(FOnHFTextEntriesChanged) then FOnHFTextEntriesChanged;
end;
{ TdxHFTextEntryChooseEvent }
constructor TdxHFTextEntryChooseEvent.Create(Sender: TObject; const AEntry: string);
begin
inherited Create(Sender);
FEntry := AEntry;
end;
{ TdxHFTextEntryChooseSubscriber }
procedure TdxHFTextEntryChooseSubscriber.DoProcessEvent;
begin
if ActiveEvent is TdxHFTextEntryChooseEvent then
if Assigned(FOnHFTextEntryChoose) then
FOnHFTextEntryChoose(ActiveEvent.Sender, TdxHFTextEntryChooseEvent(ActiveEvent).Entry);
end;
end.