[翻译] FastReport Class Hierarchy (FastReport 组件类层次结构)
"TfrxComponent" is the base class for all FastReport components. Objects of this type have attributes such as “coordinates”, “size”, “font” and “visibility” and have lists of subordinate objects. The class also has methods which allow for the saving and restoration of the object state to or from a stream.
"TfrxComponent" 是所有FastReport組件的基類。該類型的對象具有屬性如"coordinates","size","font" 和"visibility" 并且有從屬的對象列表。該類同
時提供方法允許對象的狀態保存到流或從流中恢復。
?
- Clear??? clears object contents and deletes all its child objects ?//清除對象內容并刪除所有包含的子對象
- CreateUniqueName??? creates unique name for object placed into report? //為對象放置在報表中創建唯一的名稱
- LoadFromStream??? loads object and all its child objects from stream???? //從流中加載對象和所有子對象
- SaveToStream??? saves object to stream?? //對象保存到流中
- SetBounds??? sets object coordinates and size? //設置對象的坐標和大小
- FindObject??? searches for object with specified name among child objects? //按名字在子對象列表中查找對象
- GetDescription??? returns object’s description?? //返回對象的描述
?
The following methods are called when modifying the corresponding properties. If additional handling is needed, you can override them:
以下方法被調用,當修改相應的屬性時,如果需要額外的處理,你可以重寫它們:
- SetParent
- SetLeft
- SetTop
- SetWidth
- SetHeight
- SetFont
- SetParentFont
- SetVisible
- FontChanged
?
The following properties are defined in the “TfrxComponent” class:
下面的屬性被定義在"TfrxComponent" 類中:
- Objects??? list of child objects? //子類對象列表
- AllObjects??? list of all subordinate objects //所有下屬對象列表
- Parent??? link to parent object??? //父對象
- Page??? link to report page on which object resides? //鏈接到該對象所在的報表頁
- Report??? link to report in which object appears? //鏈接到對象所在的的報表
- IsDesigning??? “True” if designer is running
- IsLoading??? “True” if object is being loaded from stream
- IsPrinting??? “True” if object is being printed out
- BaseName??? object base name; this value is used in “CreateUniqueName” method?? //組件的唯一名字
- Left??? object X-coordinate (relative to parent)?? // 對象的x坐標(相對于父容器)
- Top??? object Y-coordinate (relative to parent)?? // 對象的y坐標(相對于父容器)
- Width?? object width?
- Height??? object height
- AbsLeft??? object absolute X-coordinate?? //對象的絕對x坐標
- AbsTop??? object absolute Y-coordinate
- Font??? object font
- ParentFont??? if “True” then uses parent object font settings
- Restrictions??? set of flags which restricts one or more object operations //限制一個或多個對象操作的標志集
- Visible??? object visibility?? //對象的可見性
?
The next base class is “TfrxReportComponent”. Objects of this type can be placed into a report design. This class has the “Draw” method for drawing the object and also the “BeforePrint/GetData/AfterPrint” methods, which are called when the report is running.
下一個基類是"TfrxReportComponent".這種類型的對象可以被放在一個設計的報表中。該類有Draw方法繪制對象,同時還有BeforePrint/GetData/AfterPrint,報表運行時調用這些方法。
TfrxReportComponent = class(TfrxComponent)
public
procedure Draw(Canvas: TCanvas;ScaleX, ScaleY, OffsetX, OffsetY: Extended); virtual; abstract;
procedure BeforePrint; virtual;
procedure GetData; virtual;
procedure AfterPrint; virtual;
function GetComponentText: String; virtual;
property OnAfterPrint: TfrxNotifyEvent;
property OnBeforePrint: TfrxNotifyEvent;
end;
The "Draw" method is called to draw the object, with parameters:
Draw方法繪制對象,參數是:
- Canvas??? on canvas
- Scale??? scaling along the X- and Y-axes??? //沿X軸和Y軸的縮放
- Offset??? offset relative to canvas edges??? //相對于畫布邊緣的偏移
?
The "BeforePrint" method is called immediately before object handling (during the report building process). This method saves the object state.?? //處理前調用,保存對象狀態
The "GetData" method is called to load data into the object.?? //將數據加載到對象
The "AfterPrint" method is called after object handling. This method restores the object state.? //對象處理完成后調用,恢復對象狀態。
?
"TfrxDialogComponent" is the base class for writing non-visual components that can be used in dialogue forms in a report.
類"TfrxDialogComponent"是編寫非可視化類組件的基類,用在報表中的對話框形式。
TfrxDialogComponent = class(TfrxReportComponent)
public
property Bitmap: TBitmap;
property Component: TComponent;
published
property Left;
property Top;
end;
?
“TfrxDialogControl” is the base class for writing common controls that can be used in dialogue forms in a report. This class has a large number of general properties and events shared by most of the common controls.
類"TfrxDialogControl"是編寫可視化公共控件的基類,用在報表中的對話框形式。該類有大多數公共控件共有的一般屬性和事件。
TfrxDialogControl = class(TfrxReportComponent)
protected
procedure InitControl(AControl: TControl);
public
property Caption: String;
property Color: TColor;
property Control: TControl;
property OnClick: TfrxNotifyEvent;
property OnDblClick: TfrxNotifyEvent;
property OnEnter: TfrxNotifyEvent;
property OnExit: TfrxNotifyEvent;
property OnKeyDown: TfrxKeyEvent;
property OnKeyPress: TfrxKeyPressEvent;
property OnKeyUp: TfrxKeyEvent;
property OnMouseDown: TfrxMouseEvent;
property OnMouseMove: TfrxMouseMoveEvent;
property OnMouseUp: TfrxMouseEvent;
published
property Left;
property Top;
property Width;
property Height;
property Font;
property ParentFont;
property Enabled: Boolean;
property Visible;
end;
When writing your own custom control, you should inherit from this class, move the required properties to the “published” section, and then add new properties for your common control. The writing of custom controls will be discussed in detail in the next chapter.
當寫自己的控件時,你應該從這個類繼承,把需要的屬性移到published區,并添加你自己新的屬性。自定義控件的編寫將在下一章中詳細討論。
?
"TfrxView" is the base class for most components that can be placed on the report design page. Objects of this class have attributes such as “Frame” and “Filling” and can also be connected to a data source. Most FastReport standard objects inherit from this class.
類"TfrxView"是大多在報表設計頁上放置的組件的基類。此類對象有屬性如Frame ,Filling,并且可以連接到一個數據源。多數FastReport標準對象繼承自該類。
TfrxView = class(TfrxReportComponent)
protected
FX, FY, FX1, FY1, FDX, FDY, FFrameWidth: Integer;
FScaleX, FScaleY: Extended;
FCanvas: TCanvas;
procedure BeginDraw(Canvas: TCanvas; ScaleX, ScaleY, OffsetX, OffsetY: Extended); virtual;
procedure DrawBackground;
procedure DrawFrame;
procedure DrawLine(x, y, x1, y1, w: Integer);
public
function IsDataField: Boolean;
property BrushStyle: TBrushStyle;
property Color: TColor;
property DataField: String;
property DataSet: TfrxDataSet;
property Frame: TfrxFrame;
published
property Align: TfrxAlign;
property Printable: Boolean;
property ShiftMode: TfrxShiftMode;
property TagStr: String;
property Left;
property Top;
property Width;
property Height;
property Restrictions;
property Visible;
property OnAfterPrint;
property OnBeforePrint;
end;
The following methods are defined in this class:
- BeginDraw??? called by the “Draw” method; calculates integer-valued coordinates and size of drawing area.
Calculated values are exposed as FX, FY, FX1, FY1, FDX and FDY variables. Frame width (exposed as FFrameWidth) is also calculated
調用Draw方法,計算區域的坐標和大小。
- DrawBackground??? draws object background? //繪制對象背景
- DrawFrame??? draws object frame?? //繪制對象邊框
- DrawLine??? draws line with specified coordinates and width?? //繪制具有指定坐標和寬度的行
- IsDataField??? returns “True” if DataSet and DataField properties contain non-empty values
One can refer to the following properties after calling the “BeginDraw” method:
- FX, FY, FX1, FY1,FDX, FDY,
FFrameWidth??? the object frame coordinates, sizes and width calculated using the Scale and Offset parameters
- FscaleX,FScaleY??? X & Y-scaling, which are copies of the ScaleX and ScaleY parameters from the Draw method
- FCanvas??? the canvas, which is a copy of the Canvas parameter from the Draw method
The class defines the following properties, which are found in most report objects:
類定義了大多數報表對象中的下列屬性:
- BrushStyle??? object fill style
- Color??? object fill color
- DataField??? name of data field to which object is connected
- DataSet??? data source
- Frame??? object frame
- Align??? object alignment relative to its parent
- Printable??? defines whether given object can be printed out? //定義給定的對象是否可以打印出來
- ShiftMode??? shift mode of object in cases when a stretchable object is placed above it? //換檔模式對象的情況時,可延伸的對象放在上面
- TagStr??? field for storing user information? //存儲用戶信息的字段(用戶可以自己使用,類似Tag)
?
"TfrxStretcheable" is the base class for writing components which modify their height depending on the data placed in them.
類"TfrxStretcheable"是編寫那些高度由數據內容的高度決定的組件的基類。(意即組件高度是動態的)
TfrxStretcheable = class(TfrxView)
public
function CalcHeight: Extended; virtual;
function DrawPart: Extended; virtual;
procedure InitPart; virtual;
published
property StretchMode: TfrxStretchMode;
end;
Objects of this class can be stretched vertically and also split into smaller pieces when the objects don't have sufficient width on the output page. The objects are split enough times to fit all of their data into the available space.
此類型的對象可以垂直拉伸和分裂成更小的片段,當對象在輸出頁上沒有足夠的寬度時。該對象被分割足夠的時間,以適應所有的數據到可用的空間。
The following methods are defined in this class:
- CalcHeight??? calculates and returns object height according to the data placed in it? //根據所放置的數據計算并返回對象高度
- InitPart??? called before object splitting? //對象分割前調用
- DrawPart??? draws next data chunk placed in object “Return value” is the amount of unused space where it was impossible to display data
//繪制對象的下一個數據塊,返回值是無法顯示的數據未使用空間的量。
?
以上是FastReport報表中幾個重要的基類,以及類中重要的方法,屬性。
TfrxComponent
TfrxReportComponent
TfrxDialogComponent
TfrxDialogControl
TfrxView
TfrxStretcheable
轉載于:https://www.cnblogs.com/moon25/p/5530140.html
總結
以上是生活随笔為你收集整理的[翻译] FastReport Class Hierarchy (FastReport 组件类层次结构)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 143. Reorder List
- 下一篇: 原创:管仲、鲍叔牙、齐桓公这三人是什么关