Search Results for

    Show / Hide Table of Contents

    Delphi パレットのコンポーネント

    TfrxIBXComponents は、作成する必要のある最初のコンポーネントです。エンジンの登録時に、FastReport のコンポーネント パレットに配置されます(Delphi 環境)。このコンポーネントをプロジェクトに配置するとすぐに、Delphi はエンジン ユニットへのリンクを "Users" リストに自動的に追加します。このコンポーネントにもう 1 つタスクを割り当てる必要があります。つまり、DB への既存の接続を参照する DefaultDatabase プロパティを定義することです。既定では、すべての TfrxIBXTable および TfrxIBXQuery コンポーネントは、この接続を参照します。TfrxDBComponents クラスからコンポーネントを継承する必要があります。

      TfrxDBComponents = class(TComponent)
      public
        function GetDescription: String; virtual; abstract;
      end;
    

    "IBX コンポーネント" などの説明は、1 つの関数によってのみ返される必要があります。TfrxIBXComponents コンポーネントは次のように実装されます。

    type
      TfrxIBXComponents = class(TfrxDBComponents)
      private
        FDefaultDatabase: TIBDatabase;
        FOldComponents: TfrxIBXComponents;
      public
        constructor Create(AOwner: TComponent); override;
        destructor Destroy; override;
        function GetDescription: String; override;
      published
        property DefaultDatabase: TIBDatabase read FDefaultDatabase write FDefaultDatabase;
      end;
    
    var
      IBXComponents: TfrxIBXComponents;
    
    constructor TfrxIBXComponents.Create(AOwner: TComponent);
    begin
      inherited;
      FOldComponents := IBXComponents;
      IBXComponents := Self;
    end;
    
    destructor TfrxIBXComponents.Destroy;
    begin
      if IBXComponents = Self then
        IBXComponents := FOldComponents;
      inherited;
    end;
    
    function TfrxIBXComponents.GetDescription: String;
    begin
      Result := 'IBX';
    end;
    

    TfrxIBXComponents コンポーネントのコピーを参照する、IBXComponents グローバル変数を定義します。プロジェクトにコンポーネントを数回配置した場合、それは無意味ではありますが、コンポーネントを削除した後に、前のコンポーネントへのリンクを保存して、それを復元できるようになります。

    プロジェクトに既存する DB への接続へのリンクは、DefaultDatabase プロパティに置くことができます。後述の TfrxIBXTable、TfrxIBXQuery コンポーネントを記述する方法では、コンポーネントは既定でこの接続を使用することができます(実際には、これは IBXComponents グローバル変数を必要とするものです)。

    Back to top © Copyright Fast Reports Inc.