Componentes.Terceros.DevExp.../official/x.48/ExpressPrinting System/Sources/dxPScxCommonReg.pas
2010-01-18 18:33:24 +00:00

171 lines
6.3 KiB
ObjectPascal

{*******************************************************************}
{ }
{ Developer Express Visual Component Library }
{ ExpressPrinting System COMPONENT SUITE }
{ }
{ Copyright (C) 1998-2009 Developer Express Inc. }
{ ALL RIGHTS RESERVED }
{ }
{ The entire contents 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 dxPScxCommonReg;
interface
{$I cxVer.inc}
procedure Register;
implementation
uses
{$IFDEF DELPHI6}
DesignIntf, DesignEditors,
{$ELSE}
DsgnIntf,
{$ENDIF}
SysUtils, TypInfo, Classes, cxClasses, cxLookAndFeels, dxPScxCommon;
type
TdxReportLinkLookAndFeelKindPropertyEditor = class(TEnumProperty)
public
procedure GetValues(Proc: TGetStrProc); override;
end;
TdxReportLinkOptionsPropertyEditor = class(TClassProperty)
private
function GetOptions: TdxCustomReportLinkOptions;
function GetReportLink: TdxCustomcxControlReportLink;
public
procedure Edit; override;
function GetAttributes: TPropertyAttributes; override;
property Options: TdxCustomReportLinkOptions read GetOptions;
property ReportLink: TdxCustomcxControlReportLink read GetReportLink;
end;
TdxReportLinkStylesPropertyEditor = class(TClassProperty)
private
function GetReportLink: TdxCustomcxControlReportLink;
function GetStyles: TdxCustomReportLinkStyles;
public
procedure Edit; override;
function GetAttributes: TPropertyAttributes; override;
property Styles: TdxCustomReportLinkStyles read GetStyles;
property ReportLink: TdxCustomcxControlReportLink read GetReportLink;
end;
{ TdxReportLinkLookAndFeelKindPropertyEditor }
procedure TdxReportLinkLookAndFeelKindPropertyEditor.GetValues(Proc: TGetStrProc);
var
I: Integer;
begin
for I := Integer(lfFlat) to Integer(lfUltraFlat) do
Proc(GetEnumName(GetPropType, I));
end;
{ TdxReportLinkOptionsPropertyEditor }
procedure TdxReportLinkOptionsPropertyEditor.Edit;
var
DesignerSupport: IdxReportLinkOptionsDesignerSupport;
begin
if Supports(TObject(Options), IdxReportLinkOptionsDesignerSupport, DesignerSupport) then
begin
DesignerSupport.DesignerInitialize;
try
ReportLink.DesignReport;
finally
DesignerSupport.DesignerFinalize;
end;
end;
end;
function TdxReportLinkOptionsPropertyEditor.GetAttributes: TPropertyAttributes;
begin
Result := inherited GetAttributes + [paDialog]; // TODO: ReportLink.CanDesign
end;
function TdxReportLinkOptionsPropertyEditor.GetOptions: TdxCustomReportLinkOptions;
begin
Result := TdxCustomReportLinkOptions(GetOrdValue);
end;
function TdxReportLinkOptionsPropertyEditor.GetReportLink: TdxCustomcxControlReportLink;
begin
Result := TdxCustomcxControlReportLink(GetComponent(0));
end;
{ TdxReportLinkStylesPropertyEditor }
procedure TdxReportLinkStylesPropertyEditor.Edit;
var
DesignerSupport: IdxReportLinkOptionsDesignerSupport;
begin
if Supports(TObject(Styles), IdxReportLinkOptionsDesignerSupport, DesignerSupport) then
begin
DesignerSupport.DesignerInitialize;
try
ReportLink.DesignReport;
finally
DesignerSupport.DesignerFinalize;
end;
end;
end;
function TdxReportLinkStylesPropertyEditor.GetAttributes: TPropertyAttributes;
begin
Result := inherited GetAttributes + [paDialog]; // TODO: ReportLink.CanDesign
end;
function TdxReportLinkStylesPropertyEditor.GetReportLink: TdxCustomcxControlReportLink;
begin
Result := TdxCustomcxControlReportLink(GetComponent(0));
end;
function TdxReportLinkStylesPropertyEditor.GetStyles: TdxCustomReportLinkStyles;
begin
Result := TdxCustomReportLinkStyles(GetOrdValue);
end;
procedure Register;
begin
{$IFDEF DELPHI9}
ForceDemandLoadState(dlDisable);
{$ENDIF}
RegisterPropertyEditor(TypeInfo(TcxLookAndFeelKind), TdxCustomReportLinkOptionsFormatting,
'LookAndFeelKind', TdxReportLinkLookAndFeelKindPropertyEditor);
RegisterPropertyEditor(TypeInfo(TdxCustomReportLinkOptions),
TdxCustomcxControlReportLink, '', TdxReportLinkOptionsPropertyEditor);
RegisterPropertyEditor(TypeInfo(TdxCustomReportLinkStyles),
TdxCustomcxControlReportLink, '', TdxReportLinkStylesPropertyEditor);
end;
end.