📄 frxdesgn.pas
字号:
{******************************************}
{ }
{ FastReport v4.0 }
{ Designer }
{ }
{ Copyright (c) 1998-2007 }
{ by Alexander Tzyganenko, }
{ Fast Reports Inc. }
{ }
{******************************************}
unit frxDesgn;
interface
{$I frx.inc}
uses
{$IFDEF FR_COM}
FastReport_TLB,
{$ENDIF}
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ImgList, Menus, Buttons, StdCtrls, ToolWin, ExtCtrls, ActnList,
CommCtrl, frxClass, frxDock, frxCtrls, frxDesgnCtrls, frxDesgnWorkspace,
frxInsp, frxDialogForm, frxDataTree, frxReportTree, frxSynMemo,
fs_iinterpreter, Printers, frxWatchForm, frxPictureCache
{$IFDEF Delphi6}
, Variants
{$ENDIF}
{$IFDEF Delphi9}
, GraphUtil, Tabs
{$ENDIF}
{$IFDEF FR_COM}
, ActiveX, AxCtrls
, VCLCom, ComObj, ComServ
//, FastReport_TLB
{$ENDIF}
;
{$IFDEF FR_COM}
const
CLASS_TfrxDesigner: TGUID = '{48C4E65F-53A7-4382-A3C4-482972D8623B}';
{$ENDIF}
type
TfrxDesignerUnits = (duCM, duInches, duPixels, duChars);
TfrxLoadReportEvent = function(Report: TfrxReport): Boolean of object;
TfrxSaveReportEvent = function(Report: TfrxReport; SaveAs: Boolean): Boolean of object;
TfrxGetTemplateListEvent = procedure(List: TStrings) of object;
TfrxDesignerRestriction =
(drDontInsertObject, drDontDeletePage, drDontCreatePage, drDontChangePageOptions,
drDontCreateReport, drDontLoadReport, drDontSaveReport,
drDontPreviewReport, drDontEditVariables, drDontChangeReportOptions,
drDontEditReportData, drDontShowRecentFiles);
TfrxDesignerRestrictions = set of TfrxDesignerRestriction;
TSampleFormat = class;
{$IFDEF FR_COM}
TfrxDesignerForm = class;
TfrxDesigner = class(TComponent, IfrxDesigner, IConnectionPointContainer )
FConnectionPoints: TConnectionPoints;
FConnectionPoint: TConnectionPoint;
FEvent: IfrxDesignerEvents;
private
FForm: TfrxDesignerForm;
{$ELSE}
TfrxDesigner = class(TComponent)
private
{$ENDIF}
FCloseQuery: Boolean;
FDefaultScriptLanguage: String;
FDefaultFont: TFont;
FDefaultLeftMargin: Extended;
FDefaultBottomMargin: Extended;
FDefaultRightMargin: Extended;
FDefaultTopMargin: Extended;
FDefaultPaperSize: Integer;
FDefaultOrientation: TPrinterOrientation;
{$IFDEF Delphi10}
FGradient: Boolean;
FGradientEnd: TColor;
FGradientStart: TColor;
{$ENDIF}
FOpenDir: String;
FSaveDir: String;
FTemplateDir: String;
FStandalone: Boolean;
FRestrictions: TfrxDesignerRestrictions;
FRTLLanguage: Boolean;
FOnLoadReport: TfrxLoadReportEvent;
FOnSaveReport: TfrxSaveReportEvent;
FOnShow: TNotifyEvent;
FOnInsertObject: TNotifyEvent;
FOnGetTemplateList: TfrxGetTemplateListEvent;
FOnShowStartupScreen: TNotifyEvent;
procedure SetDefaultFont(const Value: TFont);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure GetTemplateList(List: TStrings);
published
property CloseQuery: Boolean read FCloseQuery write FCloseQuery default True;
property DefaultScriptLanguage: String read FDefaultScriptLanguage write FDefaultScriptLanguage;
property DefaultFont: TFont read FDefaultFont write SetDefaultFont;
property DefaultLeftMargin: Extended read FDefaultLeftMargin write FDefaultLeftMargin;
property DefaultRightMargin: Extended read FDefaultRightMargin write FDefaultRightMargin;
property DefaultTopMargin: Extended read FDefaultTopMargin write FDefaultTopMargin;
property DefaultBottomMargin: Extended read FDefaultBottomMargin write FDefaultBottomMargin;
property DefaultPaperSize: Integer read FDefaultPaperSize write FDefaultPaperSize;
property DefaultOrientation: TPrinterOrientation read FDefaultOrientation write FDefaultOrientation;
{$IFDEF Delphi10}
property Gradient: Boolean read FGradient write FGradient default False;
property GradientEnd: TColor read FGradientEnd write FGradientEnd;
property GradientStart: TColor read FGradientStart write FGradientStart;
{$ENDIF}
property OpenDir: String read FOpenDir write FOpenDir;
property SaveDir: String read FSaveDir write FSaveDir;
property TemplateDir: String read FTemplateDir write FTemplateDir;
property Standalone: Boolean read FStandalone write FStandalone default False;
property Restrictions: TfrxDesignerRestrictions read FRestrictions write FRestrictions;
property RTLLanguage: Boolean read FRTLLanguage write FRTLLanguage;
property OnLoadReport: TfrxLoadReportEvent read FOnLoadReport write FOnLoadReport;
property OnSaveReport: TfrxSaveReportEvent read FOnSaveReport write FOnSaveReport;
property OnShow: TNotifyEvent read FOnShow write FOnShow;
property OnInsertObject: TNotifyEvent read FOnInsertObject write FOnInsertObject;
property OnShowStartupScreen: TNotifyEvent read FOnShowStartupScreen write FOnShowStartupScreen;
property OnGetTemplateList: TfrxGetTemplateListEvent read FOnGetTemplateList write FOnGetTemplateList;
{$IFDEF FR_COM}
procedure EventSinkChanged(const Sink: IUnknown; Connecting: Boolean);
function Set_Standalone(Param: WordBool): HResult; stdcall;
function ShowWizards(Form: Integer): HResult; stdcall;
function OpenLastReport(Form: Integer): HResult; stdcall;
function OpenReport(Form: Integer): HResult; stdcall;
function EditConnectionAliases(Form: Integer): HResult; stdcall;
function Set_DefaultScriptLanguage(const Value: WideString): HResult; stdcall;
function Get_EnableStartupWindow(out Value: WordBool): HResult; stdcall;
function Set_EnableStartupWindow(Value: WordBool): HResult; stdcall;
function Set_EnableLoadEvent(Value: WordBool): HResult; stdcall;
function Set_EnableSaveEvent(Value: WordBool): HResult; stdcall;
function Get_Restrictions(out Value: frxDesignerRestrictions): HResult; stdcall;
function Set_Restrictions(Value: frxDesignerRestrictions): HResult; stdcall;
function Get_TemplateModified(out Value: WordBool): HResult; stdcall;
function Set_TemplateModified(Value: WordBool): HResult; stdcall;
{ COM proxy event functions }
procedure OnDesignerStartupHandler(Sender: TObject);
function OnLoadReportHandler(Report: TfrxReport): Boolean ;
function OnSaveReportHandler(Report: TfrxReport; SaveAs: Boolean): Boolean;
{IConnectionPointContainer}
property ConnectionPoints: TConnectionPoints read FConnectionPoints implements IConnectionPointContainer;
{$ENDIF}
end;
TfrxDesignerForm = class(TfrxCustomDesigner)
Bevel1: TBevel;
StatusBar: TStatusBar;
DockBottom: TControlBar;
DockTop: TControlBar;
TextTB: TToolBar;
PanelTB1: TfrxTBPanel;
FontSizeCB: TfrxComboBox;
FontNameCB: TfrxFontComboBox;
BoldB: TToolButton;
ItalicB: TToolButton;
UnderlineB: TToolButton;
SepTB8: TToolButton;
FontColorB: TToolButton;
HighlightB: TToolButton;
SepTB9: TToolButton;
TextAlignLeftB: TToolButton;
TextAlignCenterB: TToolButton;
TextAlignRightB: TToolButton;
TextAlignBlockB: TToolButton;
SepTB10: TToolButton;
TextAlignTopB: TToolButton;
TextAlignMiddleB: TToolButton;
TextAlignBottomB: TToolButton;
FrameTB: TToolBar;
FrameTopB: TToolButton;
FrameBottomB: TToolButton;
FrameLeftB: TToolButton;
FrameRightB: TToolButton;
SepTB11: TToolButton;
FrameAllB: TToolButton;
FrameNoB: TToolButton;
SepTB12: TToolButton;
FillColorB: TToolButton;
FrameColorB: TToolButton;
FrameStyleB: TToolButton;
PanelTB2: TfrxTBPanel;
FrameWidthCB: TfrxComboBox;
StandardTB: TToolBar;
NewB: TToolButton;
OpenB: TToolButton;
SaveB: TToolButton;
PreviewB: TToolButton;
SepTB1: TToolButton;
CutB: TToolButton;
CopyB: TToolButton;
PasteB: TToolButton;
SepTB2: TToolButton;
UndoB: TToolButton;
RedoB: TToolButton;
SepTB3: TToolButton;
SepTB4: TToolButton;
NewPageB: TToolButton;
NewDialogB: TToolButton;
DeletePageB: TToolButton;
PageSettingsB: TToolButton;
ShowGridB: TToolButton;
AlignToGridB: TToolButton;
ExtraToolsTB: TToolBar;
PagePopup: TPopupMenu;
CutMI1: TMenuItem;
CopyMI1: TMenuItem;
PasteMI1: TMenuItem;
DeleteMI1: TMenuItem;
SelectAllMI1: TMenuItem;
SepMI8: TMenuItem;
EditMI1: TMenuItem;
MainMenu: TMainMenu;
FileMenu: TMenuItem;
EditMenu: TMenuItem;
ViewMenu: TMenuItem;
ToolbarsMI: TMenuItem;
StandardMI: TMenuItem;
TextMI: TMenuItem;
FrameMI: TMenuItem;
AlignmentMI: TMenuItem;
ToolsMI: TMenuItem;
InspectorMI: TMenuItem;
DataTreeMI: TMenuItem;
OptionsMI: TMenuItem;
HelpMenu: TMenuItem;
HelpContentsMI: TMenuItem;
SepMI7: TMenuItem;
AboutMI: TMenuItem;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
TabPopup: TPopupMenu;
NewPageMI1: TMenuItem;
NewDialogMI1: TMenuItem;
DeletePageMI1: TMenuItem;
PageSettingsMI1: TMenuItem;
ActionList: TActionList;
ExitCmd: TAction;
CutCmd: TAction;
CopyCmd: TAction;
PasteCmd: TAction;
UndoCmd: TAction;
RedoCmd: TAction;
DeleteCmd: TAction;
SelectAllCmd: TAction;
EditCmd: TAction;
BringToFrontCmd: TAction;
SendToBackCmd: TAction;
DeletePageCmd: TAction;
NewItemCmd: TAction;
NewPageCmd: TAction;
NewDialogCmd: TAction;
NewReportCmd: TAction;
OpenCmd: TAction;
SaveCmd: TAction;
SaveAsCmd: TAction;
VariablesCmd: TAction;
PageSettingsCmd: TAction;
PreviewCmd: TAction;
NewMI: TMenuItem;
NewReportMI: TMenuItem;
NewPageMI: TMenuItem;
NewDialogMI: TMenuItem;
SepMI1: TMenuItem;
OpenMI: TMenuItem;
SaveMI: TMenuItem;
SaveAsMI: TMenuItem;
VariablesMI: TMenuItem;
SepMI3: TMenuItem;
PreviewMI: TMenuItem;
SepMI4: TMenuItem;
ExitMI: TMenuItem;
UndoMI: TMenuItem;
RedoMI: TMenuItem;
SepMI5: TMenuItem;
CutMI: TMenuItem;
CopyMI: TMenuItem;
PasteMI: TMenuItem;
DeleteMI: TMenuItem;
DeletePageMI: TMenuItem;
SelectAllMI: TMenuItem;
SepMI6: TMenuItem;
BringtoFrontMI: TMenuItem;
SendtoBackMI: TMenuItem;
EditMI: TMenuItem;
PanelTB3: TfrxTBPanel;
ScaleCB: TfrxComboBox;
ObjectsTB1: TToolBar;
BandsPopup: TPopupMenu;
ReportTitleMI: TMenuItem;
ReportSummaryMI: TMenuItem;
PageHeaderMI: TMenuItem;
PageFooterMI: TMenuItem;
HeaderMI: TMenuItem;
FooterMI: TMenuItem;
MasterDataMI: TMenuItem;
DetailDataMI: TMenuItem;
SubdetailDataMI: TMenuItem;
GroupHeaderMI: TMenuItem;
GroupFooterMI: TMenuItem;
ColumnHeaderMI: TMenuItem;
ColumnFooterMI: TMenuItem;
ChildMI: TMenuItem;
LeftDockSite1: TfrxDockSite;
VariablesB: TToolButton;
SepTB13: TToolButton;
PageSettingsMI: TMenuItem;
Timer: TTimer;
ReportSettingsMI: TMenuItem;
Data4levelMI: TMenuItem;
Data5levelMI: TMenuItem;
Data6levelMI: TMenuItem;
SepMI10: TMenuItem;
SepMI9: TMenuItem;
ShowGuidesMI: TMenuItem;
ShowRulersMI: TMenuItem;
DeleteGuidesMI: TMenuItem;
SepMI11: TMenuItem;
N1: TMenuItem;
BringtoFrontMI1: TMenuItem;
SendtoBackMI1: TMenuItem;
SepMI12: TMenuItem;
RotateB: TToolButton;
RotationPopup: TPopupMenu;
R0MI: TMenuItem;
R45MI: TMenuItem;
R90MI: TMenuItem;
R180MI: TMenuItem;
R270MI: TMenuItem;
SetToGridB: TToolButton;
ShadowB: TToolButton;
ReportMenu: TMenuItem;
ReportDataMI: TMenuItem;
OpenScriptDialog: TOpenDialog;
SaveScriptDialog: TSaveDialog;
ReportTreeMI: TMenuItem;
ObjectsPopup: TPopupMenu;
AlignTB: TToolBar;
AlignLeftsB: TToolButton;
AlignHorzCentersB: TToolButton;
AlignRightsB: TToolButton;
AlignTopsB: TToolButton;
AlignVertCentersB: TToolButton;
AlignBottomsB: TToolButton;
SpaceHorzB: TToolButton;
SpaceVertB: TToolButton;
CenterHorzB: TToolButton;
CenterVertB: TToolButton;
SameWidthB: TToolButton;
SameHeightB: TToolButton;
SepTB15: TToolButton;
SepTB16: TToolButton;
SepTB18: TToolButton;
SepTB17: TToolButton;
OverlayMI: TMenuItem;
StyleCB: TfrxComboBox;
ReportStylesMI: TMenuItem;
TabOrderMI: TMenuItem;
N2: TMenuItem;
FindMI: TMenuItem;
FindNextMI: TMenuItem;
ReplaceMI: TMenuItem;
DMPPopup: TPopupMenu;
BoldMI: TMenuItem;
ItalicMI: TMenuItem;
UnderlineMI: TMenuItem;
SuperScriptMI: TMenuItem;
SubScriptMI: TMenuItem;
CondensedMI: TMenuItem;
WideMI: TMenuItem;
N12cpiMI: TMenuItem;
N15cpiMI: TMenuItem;
FontB: TToolButton;
VerticalbandsMI: TMenuItem;
HeaderMI1: TMenuItem;
FooterMI1: TMenuItem;
MasterDataMI1: TMenuItem;
DetailDataMI1: TMenuItem;
SubdetailDataMI1: TMenuItem;
GroupHeaderMI1: TMenuItem;
GroupFooterMI1: TMenuItem;
ChildMI1: TMenuItem;
N3: TMenuItem;
GroupB: TToolButton;
UngroupB: TToolButton;
SepTB20: TToolButton;
GroupCmd: TAction;
UngroupCmd: TAction;
GroupMI: TMenuItem;
UngroupMI: TMenuItem;
ConnectionsMI: TMenuItem;
BackPanel: TPanel;
ScrollBoxPanel: TPanel;
ScrollBox: TfrxScrollBox;
LeftRuler: TfrxRuler;
TopRuler: TfrxRuler;
CodePanel: TPanel;
CodeTB: TToolBar;
frTBPanel1: TfrxTBPanel;
LangL: TLabel;
LangCB: TfrxComboBox;
OpenScriptB: TToolButton;
SaveScriptB: TToolButton;
SepTB19: TToolButton;
RunScriptB: TToolButton;
RunToCursorB: TToolButton;
StepScriptB: TToolButton;
StopScriptB: TToolButton;
EvaluateB: TToolButton;
BreakPointB: TToolButton;
CodeDockSite: TfrxDockSite;
LeftDockSite2: TfrxDockSite;
RightDockSite: TfrxDockSite;
TabPanel: TPanel;
Panel1: TPanel;
AddChildMI: TMenuItem;
FindCmd: TAction;
ReplaceCmd: TAction;
FindNextCmd: TAction;
ReportDataCmd: TAction;
ReportStylesCmd: TAction;
ReportOptionsCmd: TAction;
ShowRulersCmd: TAction;
ShowGuidesCmd: TAction;
DeleteGuidesCmd: TAction;
OptionsCmd: TAction;
HelpContentsCmd: TAction;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -