FastReport クラスの階層
TfrxComponent
は、すべての FastReport コンポーネントの基本クラスです。この型のオブジェクトは、座標、サイズ、フォント、可視性などのパラメーターと、下位オブジェクトの一覧を持ちます。また、このクラスには、オブジェクトの状態をストリームに保存したり、ストリームから復元したりすることができるメソッドが含まれています。
TfrxComponent = class(TComponent)
protected
procedure SetParent(AParent: TfrxComponent); virtual;
procedure SetLeft(Value: Extended); virtual;
procedure SetTop(Value: Extended); virtual;
procedure SetWidth(Value: Extended); virtual;
procedure SetHeight(Value: Extended); virtual;
procedure SetFont(Value: TFont); virtual;
procedure SetParentFont(Value: Boolean); virtual;
procedure SetVisible(Value: Boolean); virtual;
procedure FontChanged(Sender: TObject); virtual;
public
constructor Create(AOwner: TComponent); override;
procedure Assign(Source: TPersistent); override;
procedure Clear; virtual;
procedure CreateUniqueName;
procedure LoadFromStream(Stream: TStream); virtual;
procedure SaveToStream(Stream: TStream); virtual;
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Extended);
function FindObject(const AName: String): TfrxComponent;
class function GetDescription: String; virtual;
property Objects: TList readonly;
property AllObjects: TList readonly;
property Parent: TfrxComponent;
property Page: TfrxPage readonly;
property Report: TfrxReport readonly;
property IsDesigning: Boolean;
property IsLoading: Boolean;
property IsPrinting: Boolean;
property BaseName: String;
property Left: Extended;
property Top: Extended;
property Width: Extended;
property Height: Extended;
property AbsLeft: Extended readonly;
property AbsTop: Extended readonly;
property Font: TFont;
property ParentFont: Boolean;
property Restrictions: TfrxRestrictions;
property Visible: Boolean;
end;
Clear
– オブジェクトの内容を消去し、その子オブジェクトをすべて削除します。CreateUniqueName
– レポートに配置されたオブジェクトの一意の名前を作成します。LoadFromStream
– ストリームからオブジェクトの内容とその子オブジェクトをすべて読み込みます。SaveToStream
– ストリームにオブジェクトを保存します。SetBounds
– オブジェクトの座標とサイズを設定します。FindObject
– 子オブジェクトの中で、指定された名前を持つオブジェクトを検索します。GetDescription
– オブジェクトの説明を返します。
以下のメソッドは、それに対応するプロパティを変更するときに呼び出されます。追加の処理が必要な場合は、そのメソッドをオーバーライドできます。
SetParent
SetLeft
SetTop
SetWidth
SetHeight
SetFont
SetParentFont
SetVisible
FontChanged
以下のプロパティが TfrxComponent
クラスで定義されています。
Objects
– 子オブジェクトの一覧。AllObjects
– すべての下位オブジェクトの一覧。Parent
– 親オブジェクトへのリンク。Page
– オブジェクトが属しているレポート ページへのリンク。Report
– オブジェクトが属しているレポートへのリンク。IsDesigning
– デザイナーが起動している場合は "True"。IsLoading
– オブジェクトがストリームから読み込まれている場合は "True"。IsPrinting
– オブジェクトが出力されている場合は "True"。BaseName
– オブジェクトの基本的な名前。この値はCreateUniqueName
メソッドで使用されます。Left
– オブジェクトの X 座標(親との相対)。Top
– オブジェクトの Y 座標(親との相対)。Width
– オブジェクトの幅。Height
– オブジェクトの高さ。AbsLeft
– オブジェクトの X 絶対座標。AbsTop
– オブジェクトの Y 絶対座標。Font
– オブジェクトのフォント。ParentFont
– "True" の場合は、親オブジェクトのフォント設定を使用します。Restrictions
– 何らかのオブジェクトの操作を制限するフラグのセット。Visible
– オブジェクトの可視性。
次の基本クラスは 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;
Draw メソッドは、オブジェクトの描画時に呼び出されます。パラメーターは次のとおりです。
Canvas – キャンバス。
Scale – X 軸および Y 軸の比率。
Offset – キャンバスの端からの相対的なオフセット。
BeforePrint
メソッドは、オブジェクトを処理する直前(レポートの作成処理中)に呼び出されます。 このメソッドは、オブジェクトの状態を保存します。
GetData
メソッドは、オブジェクトにデータを読み込むために呼び出されます。
AfterPrint
は、オブジェクト処理後に呼び出されます。このメソッドは、オブジェクトの状態を復元します。
TfrxDialogComponent
クラスは、レポートのダイアログ フォームに配置することができる、非ビジュアル コンポーネントを記述するための基本クラスです。
TfrxDialogComponent = class(TfrxReportComponent)
public
property Bitmap: TBitmap;
property Component: TComponent;
published
property Left;
property Top;
end;
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;
独自のカスタム コントロール要素を作成する場合は、このクラスから継承し、必要なプロパティを published セクションに移動させてから、独自のコモン コントロール用の新しいプロパティを指定する必要があります。コントロール要素の記述については、次の章で詳しく説明します。
TfrxView
クラスは、レポート デザイン ページに配置することができる、ほとんどのコンポーネントの基本クラスです。この型のオブジェクトは Frame や Fill などのパラメーターを持っており、データ ソースに接続することもできます。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;
以下のメソッドが、このクラスで定義されています。
BeginDraw
– このメソッドはDraw
メソッドから呼び出され、整数値の座標および描画領域サイズを計算します。計算された値は、FX
、FY
、FX1
、FY1
、FDX
、およびFDY
変数で表されます。また、枠線の幅(FFrameWidth
に入れられます)も計算されます。DrawBackground
– オブジェクトの背景を描画します。DrawFrame
– オブジェクトの枠を描画します。DrawLine
– 指定された座標と幅(太さ)を使用して、線を描画します。IsDataField
–DataSet
およびDataField
プロパティに空でない値が含まれている場合は、"True" を返します。
BeginDraw
メソッドを呼び出した後、次のプロパティを参照することができます。
FX
、FY
、FX1
、FY1
、FDX
、FDY
、FFrameWidth
– Scale および Offset パラメーターに従って計算された、オブジェクトの枠線の座標、サイズ、および幅です。FScaleX
、FScaleY
– 比率。これらはDraw
メソッドの ScaleX および ScaleY パラメーターのコピーです。FCanvas
– キャンバス。これはDraw
メソッドの Canvas パラメーターのコピーです。
このクラスには、ほとんどのレポート オブジェクトで一般的な以下のプロパティが定義されています。
BrushStyle
– オブジェクトの塗りつぶしスタイル。Color
– オブジェクトの塗りつぶしの色。DataField
– オブジェクトが接続されているデータ フィールド名。DataSet
– データ ソース。Frame
– オブジェクトの枠線。Align
– オブジェクトとその親との相対的な配置。Printable
– 指定されたオブジェクトを印刷するかどうかを定義します。ShiftMode
– 指定されたオブジェクトの上に伸縮可能なオブジェクトが配置された場合の、オブジェクトのシフト モード。TagStr
– ユーザー情報を保管するためのフィールド。
TfrxStretcheable
クラスは、収容されるデータに応じて高さを変更するコンポーネントを記述するための基本クラスです。
TfrxStretcheable = class(TfrxView)
public
function CalcHeight: Extended; virtual;
function DrawPart: Extended; virtual;
procedure InitPart; virtual;
published
property StretchMode: TfrxStretchMode;
end;
指定されたクラスのオブジェクトは引き伸ばすことができるほか、出力ページ上に空間が見つからない場合には、複数の断片に分けることもできます。同時に、オブジェクトはそのデータがすべて表示されるまで、段階的に表示されます。
以下のメソッドが、このクラスで定義されています。
CalcHeight
– 収容されるデータを基にオブジェクトの高さを計算し、その値を返します。InitPart
– オブジェクトを分割する前に呼び出されます。DrawPart
– オブジェクトに収容されている次のデータ チャンクを描画します。戻り値は、データを表示することができなかった未使用スペースの値です。