📄 rm_class.pas
字号:
mmSaveLeft, mmSaveTop, mmSaveWidth, mmSaveHeight: Integer;
mmSaveFWLeft, mmSaveFWTop, mmSaveFWRight, mmSaveFWBottom: Integer;
mmSaveFontWidth: Integer;
mmSaveShadowWidth: Integer;
SaveFontWidth: Integer;
RealRect: TRect;
OriginalTop, OriginalHeight: Integer;
OriginalTop1, OriginalHeight1: Integer;
FactorX, FactorY: Double; // used for scaling objects in preview
OffsetLeft, OffsetTop: Integer; //
procedure SetFillColor(Value: TColor);
procedure SetPropertyValue(aPropName: string; aValue: Variant);
procedure ClearContents; virtual;
procedure SetName(const Value: string); override;
procedure InternalOnGetValue(aView: TRMReportView; aParName: WideString;
var aParValue: WideString);
procedure InternalOnBeforePrint(Memo: TWideStringList; View: TRMReportView);
function _CalcVFrameWidth(aTopWidth, aBottomWidth: Double): Integer;
function _CalcHFrameWidth(aLeftWidth, aRightWidth: Double): Integer;
function _DrawRect: TRect;
function GetPrinter: TRMPrinter;
procedure AfterChangeName; virtual;
function DocMode: TRMDocMode;
procedure OnHook(View: TRMView); virtual;
procedure AfterLoaded; virtual;
procedure CalcGaps; virtual;
procedure RestoreCoord; virtual;
procedure ShowBackGround; virtual;
procedure Prepare; virtual;
procedure UnPrepare; virtual;
function GetViewCommon: string; virtual;
function HaveEventProp: Boolean;
function DrawAsPicture: Boolean; virtual;
function GetParentBand: TRMBand;
procedure SetParentPage(Value: TRMCustomPage); virtual;
procedure SetParentReport(Value: TRMReport);
function IsCrossView: Boolean; virtual;
function IsContainer: Boolean; virtual;
function GetPropValue(aObject: TObject; aPropName: string; var aValue: Variant;
aArgs: array of Variant): Boolean; override;
function SetPropValue(aObject: TObject; aPropName: string; aValue: Variant): Boolean; override;
property Tag: Integer read FTag write FTag;
property TagStr: string read FTagStr write SetTagStr;
property Url: string read FUrl write SetUrl;
property FlowTo: string read FFlowTo write SetFlowTo;
property Style: string read FStyle write SetStyle;
property BrushStyle: TBrushStyle read FBrushStyle write FBrushStyle;
property ParentFont: Boolean read FParentFont write SetParentFont;
property ParentReport: TRMReport read FParentReport write FParentReport;
property WantHook: Boolean read GetWantHook write SetWantHook;
property Stretched: Boolean read GetStretched write SetStretched;
property StretchedMax: Boolean read GetStretchedMax write SetStretchedMax;
property Transparent: Boolean read GetTransparent write SetTransparent;
property HideZeros: Boolean read GetHideZeros write SetHideZeros;
property Visible: Boolean read FVisible write FVisible;
property Left: Double index 0 read GetLeft write SetLeft;
property Top: Double index 1 read GetLeft write SetLeft;
property Width: Double index 2 read GetLeft write SetLeft;
property Height: Double index 3 read GetLeft write SetLeft;
property Cursor: TCursor read FCursor write FCursor;
property ExpressionDelimiters: string read FExpressionDelimiters write FExpressionDelimiters;
property mmGapLeft: Integer read FmmGapLeft write FmmGapLeft;
property mmGapTop: integer read FmmGapTop write FmmGapTop;
property mmLeft: Integer read FmmLeft write FmmLeft;
property mmTop: Integer read FmmTop write FmmTop;
property mmWidth: Integer read FmmWidth write FmmWidth;
property mmHeight: Integer read FmmHeight write FmmHeight;
property DontUndo: Boolean read GetDontUndo write SetDontUndo;
property OnePerPage: Boolean read GetOnePerPage write SetOnePerPage;
property IsChildView: Boolean read GetIsChildView write SetIsChildView;
property UseDoublePass: Boolean read GetUseDoublePass write SetUseDoublePass;
property TabOrder: Integer read FTabOrder write FTabOrder;
public
Selected: Boolean; // used in designer
NeedCreateName: Boolean;
constructor Create; override;
destructor Destroy; override;
procedure Assign(aSource: TPersistent); override;
procedure ShowEditor; virtual;
procedure DefinePopupMenu(aPopup: TRMCustomMenuItem); virtual;
function GetClipRgn(rt: TRMRgnType): HRGN; virtual;
function GetUnits: TRMUnitType;
procedure CreateName(aReport: TRMReport);
procedure SetBounds(aLeft, aTop, aWidth, aHeight: Double);
procedure SetspBounds(aLeft, aTop, aWidth, aHeight: Integer);
procedure LoadFromStream(aStream: TStream); virtual; abstract;
procedure SaveToStream(aStream: TStream); virtual; abstract;
procedure Draw(aCanvas: TCanvas); virtual; abstract;
procedure SetFrameVisible(aVisible: Boolean);
property Prop[Index: string]: Variant read GetProp write SetProp; default;
property IsBand: Boolean read FIsBand;
property IsCrossBand: Boolean read FIsCrossBand;
property ParentPage: TRMCustomPage read FParentPage write SetParentPage;
property spLeft_Designer: Integer index 0 read GetspLeft_Designer write SetspLeft_Designer;
property spTop_Designer: Integer index 1 read GetspLeft_Designer write SetspLeft_Designer;
property spWidth_Designer: Integer index 2 read GetspLeft_Designer write SetspLeft_Designer;
property spHeight_Designer: Integer index 3 read GetspLeft_Designer write SetspLeft_Designer;
property spRight_Designer: Integer index 4 read GetspLeft_Designer;
property spBottom_Designer: Integer index 5 read GetspLeft_Designer;
property spLeft: Integer index 0 read GetspLeft write SetspLeft;
property spTop: Integer index 1 read GetspLeft write SetspLeft;
property spWidth: Integer index 2 read GetspLeft write SetspLeft;
property spHeight: Integer index 3 read GetspLeft write SetspLeft;
property spRight: Integer index 4 read GetspLeft;
property spBottom: Integer index 5 read GetspLeft;
property Memo1: TWideStringList read FMemo1 write SetMemo1;
property ObjectType: Byte read Typ;
property LeftFrame: TRMFrameLine read FLeftFrame write FLeftFrame;
property TopFrame: TRMFrameLine read FTopFrame write FTopFrame;
property RightFrame: TRMFrameLine read FRightFrame write FRightFrame;
property BottomFrame: TRMFrameLine read FBottomFrame write FBottomFrame;
property LeftRightFrame: Word read FLeftRightFrame write FLeftRightFrame;
property ShadowStyle: TRMShadowStyle read FShadowStyle write FShadowStyle;
property FillColor: TColor read FFillColor write SetFillColor;
property Memo: TWideStringList read FMemo write SetMemo;
published
property Restrictions: TRMRestrictions read FRestrictions write FRestrictions;
property Name;
end;
{ TRMDialogComponent }
TRMDialogComponent = class(TRMView)
private
FParentControl: string;
procedure SetParentControl(Value: string);
protected
FBmpRes: string;
procedure BeginDraw(aCanvas: TCanvas);
procedure PaintDesignControl;
property ParentControl: string read FParentControl write SetParentControl;
public
class procedure DefaultSize(var aKx, aKy: Integer); override;
constructor Create; override;
destructor Destroy; override;
procedure Draw(aCanvas: TCanvas); override;
procedure LoadFromStream(aStream: TStream); override;
procedure SaveToStream(aStream: TStream); override;
published
end;
{ TRMDialogControl }
TRMDialogControl = class(TRMDialogComponent)
private
protected
FControl: TControl;
function GetFont: TFont; virtual;
procedure SetFont(Value: TFont); virtual;
procedure FreeChildViews;
procedure PaintDesignControl;
property Font: TFont read GetFont write SetFont;
public
constructor Create; override;
destructor Destroy; override;
procedure Draw(aCanvas: TCanvas); override;
property Control: TControl read FControl;
published
end;
{ TRMReportView }
TRMReportView = class(TRMView)
private
FNeedPrint: Boolean;
FmmOldTop, FmmOldHeight: Integer;
FBandAlign: TRMBandAlign;
FShiftWith: string;
FStretchWith: string;
FOnBeforePrint: TNotifyEvent;
FOnBeforeCalc: TNotifyEvent;
FOnAfterCalc: TNotifyEvent;
FOnPreviewClick: TRMPreviewClickEvent;
FOnPreviewClickUrl: TRMPreviewClickUrlEvent;
FStretchWithView, FShiftWithView: TRMReportView;
FUseBandHeight: Boolean;
FSubReportName: string;
procedure OnStretchedClick(Sender: TObject);
procedure OnStretchedMaxClick(Sender: TObject);
procedure OnVisibleClick(Sender: TObject);
procedure OnPrintableClick(Sender: TObject);
function GetGapX(Index: Integer): Double;
procedure SetGapX(Index: Integer; Value: Double);
function GetspGapX(Index: Integer): Integer;
procedure SetspGapX(Index: Integer; Value: Integer);
function GetPrintFrame: Boolean;
procedure SetPrintFrame(Value: Boolean);
function GetPrintable: Boolean;
procedure SetPrintable(Value: Boolean);
function GetTextOnly: Boolean;
procedure SetTextOnly(Value: Boolean);
function GetReprintOnOverFlow: Boolean;
procedure SetReprintOnOverFlow(Value: Boolean);
procedure SetShiftWith(Value: string);
procedure SetStretchWith(Value: string);
function GetDataField: string;
procedure SetDataField(Value: string);
procedure SetDisplayFormat(Value: string);
function GetParentWidth: Boolean;
procedure SetParentWidth(Value: Boolean);
function GetParentHeight: Boolean;
procedure SetParentHeight(Value: Boolean);
function GetShowAtNewColumn: Boolean;
procedure SetShowAtNewColumn(Value: Boolean);
protected
FDisplayFormat: string;
FormatFlag: TRMFormat;
OutputOnly: Boolean;
procedure BeginDraw(aCanvas: TCanvas);
procedure Prepare; override;
procedure ShowFrame; virtual;
procedure ExpandUrl;
procedure ExpandVariables(var aStr: WideString);
procedure PlaceOnEndPage(aStream: TStream); virtual;
procedure GetEndPageData(aStream: TStream); virtual;
procedure GetBlob; virtual;
procedure SetFactorFont(aCanvas: TCanvas);
function GetFactorSize(aValue: Integer): Integer;
procedure ExportData; virtual;
function GetExportMode: TRMExportMode; virtual;
function GetExportData: string; virtual;
procedure GetExportPicture(var aDstGraphic: TGraphic; aDrawFrame: Boolean); virtual;
property PrintFrame: Boolean read GetPrintFrame write SetPrintFrame;
property Printable: Boolean read GetPrintable write SetPrintable;
property BandAlign: TRMBandAlign read FBandAlign write FBandAlign;
property TextOnly: Boolean read GetTextOnly write SetTextOnly;
property GapLeft: Double index 0 read GetGapX write SetGapX;
property GapTop: Double index 1 read GetGapX write SetGapX;
property DisplayFormat: string read FDisplayFormat write SetDisplayFormat;
property ReprintOnOverFlow: Boolean read GetReprintOnOverFlow write SetReprintOnOverFlow;
property ShiftWith: string read FShiftWith write SetShiftWith;
property StretchWith: string read FStretchWith write SetStretchWith;
property DataField: string read GetDataField write SetDataField;
property ParentHeight: Boolean read GetParentHeight write SetParentHeight;
property ParentWidth: Boolean read GetParentWidth write SetParentWidth;
property ShowAtNewColumn: Boolean read GetShowAtNewColumn write SetShowAtNewColumn;
property SubReport: string read FSubReportName write FSubReportName;
property OnBeforeCalc: TNotifyEvent read FOnBeforeCalc write FOnBeforeCalc;
property OnAfterCalc: TNotifyEvent read FOnAfterCalc write FOnAfterCalc;
property OnPreviewClick: TRMPreviewClickEvent read FOnPreviewClick write FOnPreviewClick;
property OnPreviewClickUrl: TRMPreviewClickUrlEvent read FOnPreviewClickUrl write FOnPreviewClickUrl;
public
constructor Create; override;
destructor Destroy; override;
procedure DefinePopupMenu(aPopup: TRMCustomMenuItem); override;
function GetClipRgn(rt: TRMRgnType): HRGN; override;
procedure LoadFromStream(aStream: TStream); override;
procedure SaveToStream(aStream: TStream); override;
property spGapLeft: Integer index 0 read GetspGapX write SetspGapX;
property spGapTop: Integer index 1 read GetspGapX write SetspGapX;
property mmLeft;
property mmTop;
property mmWidth;
property mmHeight;
published
property Visible;
property Left;
property Top;
property Width;
property Height;
property OnBeforePrint: TNotifyEvent read FOnBeforePrint write FOnBeforePrint;
end;
{ TRMStretcheableView }
TRMStretcheableView = class(TRMReportView)
private
protected
DrawMode: TRMDrawMode;
CalculatedHeight: Integer;
ActualHeight: Integer;
function CalcHeight: Integer; virtual; abstract;
function RemainHeight: Integer; virtual; abstract;
procedure GetMemoVariables; virtual; abstract;
public
constructor Create; override;
destructor Destroy; override;
published
property Stretched;
property StretchedMax;
end;
TRMRepeatedOptions = class(TPersistent)
private
FMasterMemoView: string;
FSuppressRepeated: Boolean;
FMergeRepeated: Boolean;
FMergeStretchedHeight: Boolean;
protected
public
published
property MasterMemoView: string read FMasterMemoView write FMasterMemoView;
property SuppressRepeated: Boolean read FSuppressRepeated write FSuppressRepeated;
property MergeRepeated: Boolean read FMergeRepeated write FMergeRepeated;
property MergeStretchedHeight: Boolean read FMergeStretchedHeight write FMergeStretchedHeight;
end;
{ TRMCustomMemoView }
TRMCustomMemoView = class(TRMStretcheableView)
private
FDisplayBeginLine, FDisplayEndLine: Integer;
FMasterView: TRMView;
FSMemo: TWideStringList;
FFont: TFont;
FHighlight: TRMHighlight;
FLineSpacing, FCharacterSpacing: Integer;
FRotationType: TRMRotationType;
FScaleFontType: TRMScaleFontType;
FRepeatedOptions: TRMRepeatedOptions;
FHAlign: TRMHAlign;
FVAlign: TRMVAlign;
FFontScaleWidth: Integer;
FLastValue, FLastValue1: string;
FLastValuePage: Integer;
FLastValueChanged: Boolean;
// FTextWidths: array of integer;
FStyleName: string;
FFontAdapter: TRMPersistentCompAdapter;
FVHeight: Integer; // used for height calculation of TRMCustomMemoView
FLastStreamPosition: Integer;
FmmLastTop: Integer;
FSaveHtmlTagList: TWideStringList;
procedure OnWordWrapClick(Sender: TObject);
procedure OnAutoWidthClick(Sender: TObject);
procedure OnHideZerosClick(Sender: TObject);
// procedure OnUnderlinesClick(Sender: TObject);
procedure OnTextOnlyClick(Sender: TObject);
procedure SetHAlign(Value: TRMHAlign);
procedure SetVAlign(Value: TRMVAlign);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -