[翻译] 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組件的基類。該類型的對(duì)象具有屬性如"coordinates","size","font" 和"visibility" 并且有從屬的對(duì)象列表。該類同
時(shí)提供方法允許對(duì)象的狀態(tài)保存到流或從流中恢復(fù)。
?
- Clear??? clears object contents and deletes all its child objects ?//清除對(duì)象內(nèi)容并刪除所有包含的子對(duì)象
- CreateUniqueName??? creates unique name for object placed into report? //為對(duì)象放置在報(bào)表中創(chuàng)建唯一的名稱
- LoadFromStream??? loads object and all its child objects from stream???? //從流中加載對(duì)象和所有子對(duì)象
- SaveToStream??? saves object to stream?? //對(duì)象保存到流中
- SetBounds??? sets object coordinates and size? //設(shè)置對(duì)象的坐標(biāo)和大小
- FindObject??? searches for object with specified name among child objects? //按名字在子對(duì)象列表中查找對(duì)象
- GetDescription??? returns object’s description?? //返回對(duì)象的描述
?
The following methods are called when modifying the corresponding properties. If additional handling is needed, you can override them:
以下方法被調(diào)用,當(dāng)修改相應(yīng)的屬性時(shí),如果需要額外的處理,你可以重寫它們:
- SetParent
- SetLeft
- SetTop
- SetWidth
- SetHeight
- SetFont
- SetParentFont
- SetVisible
- FontChanged
?
The following properties are defined in the “TfrxComponent” class:
下面的屬性被定義在"TfrxComponent" 類中:
- Objects??? list of child objects? //子類對(duì)象列表
- AllObjects??? list of all subordinate objects //所有下屬對(duì)象列表
- Parent??? link to parent object??? //父對(duì)象
- Page??? link to report page on which object resides? //鏈接到該對(duì)象所在的報(bào)表頁(yè)
- Report??? link to report in which object appears? //鏈接到對(duì)象所在的的報(bào)表
- 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)?? // 對(duì)象的x坐標(biāo)(相對(duì)于父容器)
- Top??? object Y-coordinate (relative to parent)?? // 對(duì)象的y坐標(biāo)(相對(duì)于父容器)
- Width?? object width?
- Height??? object height
- AbsLeft??? object absolute X-coordinate?? //對(duì)象的絕對(duì)x坐標(biāo)
- 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 //限制一個(gè)或多個(gè)對(duì)象操作的標(biāo)志集
- Visible??? object visibility?? //對(duì)象的可見性
?
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.
下一個(gè)基類是"TfrxReportComponent".這種類型的對(duì)象可以被放在一個(gè)設(shè)計(jì)的報(bào)表中。該類有Draw方法繪制對(duì)象,同時(shí)還有BeforePrint/GetData/AfterPrint,報(bào)表運(yùn)行時(shí)調(diào)用這些方法。
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方法繪制對(duì)象,參數(shù)是:
- Canvas??? on canvas
- Scale??? scaling along the X- and Y-axes??? //沿X軸和Y軸的縮放
- Offset??? offset relative to canvas edges??? //相對(duì)于畫布邊緣的偏移
?
The "BeforePrint" method is called immediately before object handling (during the report building process). This method saves the object state.?? //處理前調(diào)用,保存對(duì)象狀態(tài)
The "GetData" method is called to load data into the object.?? //將數(shù)據(jù)加載到對(duì)象
The "AfterPrint" method is called after object handling. This method restores the object state.? //對(duì)象處理完成后調(diào)用,恢復(fù)對(duì)象狀態(tài)。
?
"TfrxDialogComponent" is the base class for writing non-visual components that can be used in dialogue forms in a report.
類"TfrxDialogComponent"是編寫非可視化類組件的基類,用在報(bào)表中的對(duì)話框形式。
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"是編寫可視化公共控件的基類,用在報(bào)表中的對(duì)話框形式。該類有大多數(shù)公共控件共有的一般屬性和事件。
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.
當(dāng)寫自己的控件時(shí),你應(yīng)該從這個(gè)類繼承,把需要的屬性移到published區(qū),并添加你自己新的屬性。自定義控件的編寫將在下一章中詳細(xì)討論。
?
"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"是大多在報(bào)表設(shè)計(jì)頁(yè)上放置的組件的基類。此類對(duì)象有屬性如Frame ,Filling,并且可以連接到一個(gè)數(shù)據(jù)源。多數(shù)FastReport標(biāo)準(zhǔn)對(duì)象繼承自該類。
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
調(diào)用Draw方法,計(jì)算區(qū)域的坐標(biāo)和大小。
- DrawBackground??? draws object background? //繪制對(duì)象背景
- DrawFrame??? draws object frame?? //繪制對(duì)象邊框
- DrawLine??? draws line with specified coordinates and width?? //繪制具有指定坐標(biāo)和寬度的行
- 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:
類定義了大多數(shù)報(bào)表對(duì)象中的下列屬性:
- 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? //定義給定的對(duì)象是否可以打印出來
- ShiftMode??? shift mode of object in cases when a stretchable object is placed above it? //換檔模式對(duì)象的情況時(shí),可延伸的對(duì)象放在上面
- TagStr??? field for storing user information? //存儲(chǔ)用戶信息的字段(用戶可以自己使用,類似Tag)
?
"TfrxStretcheable" is the base class for writing components which modify their height depending on the data placed in them.
類"TfrxStretcheable"是編寫那些高度由數(shù)據(jù)內(nèi)容的高度決定的組件的基類。(意即組件高度是動(dòng)態(tài)的)
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.
此類型的對(duì)象可以垂直拉伸和分裂成更小的片段,當(dāng)對(duì)象在輸出頁(yè)上沒有足夠的寬度時(shí)。該對(duì)象被分割足夠的時(shí)間,以適應(yīng)所有的數(shù)據(jù)到可用的空間。
The following methods are defined in this class:
- CalcHeight??? calculates and returns object height according to the data placed in it? //根據(jù)所放置的數(shù)據(jù)計(jì)算并返回對(duì)象高度
- InitPart??? called before object splitting? //對(duì)象分割前調(diào)用
- DrawPart??? draws next data chunk placed in object “Return value” is the amount of unused space where it was impossible to display data
//繪制對(duì)象的下一個(gè)數(shù)據(jù)塊,返回值是無(wú)法顯示的數(shù)據(jù)未使用空間的量。
?
以上是FastReport報(bào)表中幾個(gè)重要的基類,以及類中重要的方法,屬性。
TfrxComponent
TfrxReportComponent
TfrxDialogComponent
TfrxDialogControl
TfrxView
TfrxStretcheable
轉(zhuǎn)載于:https://www.cnblogs.com/moon25/p/5530140.html
總結(jié)
以上是生活随笔為你收集整理的[翻译] FastReport Class Hierarchy (FastReport 组件类层次结构)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 143. Reorder List
- 下一篇: 原创:管仲、鲍叔牙、齐桓公这三人是什么关