Delphi 2007 でActiveXを使う


Delphi 2007 から ActiveX を使って帳票を表示することができます。

Delphi 2007 で ActiveX を使用するには、ユニット(WfrcLib_TLB.pas)とパッケージを事前に作成しておく必要があります。(エディタ・開発環境で使用)

ユニット(WfrcLib_TLB.pas)とパッケージの作成・インストールは初回だけ必要となります。
以降はすでに作成・インストールされたパッケージおよびユニットを流用することができます。


ActiveXにメソッドやプロパティが追加され、追加された機能を使いたい場合は再作成・インストールが必要となります。


ユニットとパッケージの作成とインストール
Delphi 2007 のフォームに帳票を表示




ユニットとパッケージの作成とインストール

「Delphi 2007」を起動します。
「ファイル」メニューから「新規作成」−「パッケージ」を選択します。

パッケージのプロジェクトが作成されます。

パッケージの名前を任意の名称に変更します。
「Package1.bpl」の右クリックで表示されるポップアップメニュー「名前の変更」で変更することができます。
(例では "WfrcPackage" に変更)

ActiveXのユニット(WfrcLib_TLB.pas)を作成しパッケージに登録します。
「コンポーネント」メニューから「コンポーネントのインポート」をクリックします。

「コンポーネントのインポート」ダイアログが表示されます。


「ActiveX コントロールの取り込み」を選択し「次へ」ボタンをクリックします。


「Wonderful Report 2005 Preview Control」を選択し「次へ」ボタンをクリックします。


「コンポーネントラッパーの作成」をチェックし「次へ」ボタンをクリックします。


「プロジェクトにユニットを追加」を選択し「完了」ボタンでダイアログを閉じます。
パッケージにユニット(コンポーネント)がインポートされユニットの内容(WfrcLib_TLB)が表示されます。




「プロジェクトマネージャー」ウインドウでパッケージ(WfrcPackage.bpl)を、
マウス右ボタンでクリックし「インストール」を実行します。



パッケージが正常にインストールされると次のようなダイアログが表示されます。



コンパイル次のような警告が表示されますが実行には問題ございません。
「[DCC 警告] WfrcLib_TLB.pas(314): W1010 'Create'メソッドが基本型'TOleControl'の仮想メソッドを隠しました」


これでユニット(WfrcLib_TLB.pas)の作成とパッケージのインストールが完了しました。
「Delphi 2007」を終了します。(プロジェクトを保存する必要はありません)

「コンポーネント」メニューから「パッケージのインストール」ダイアログを表示し、
上記で作成したパッケージ(WfrcPackage.bpl)がインストールされているか確認することができます。

<作成ファイル/開発で必要なファイル(例)>
ファイル名 フォルダ(標準)
WfrcPackage.bpl 共有ドキュメント\RAD Studio\5.0\Bpl
WfrcLib_TLB.dcr マイドキュメント\RAD Studio\5.0\Import
WfrcLib_TLB.dcu マイドキュメント\RAD Studio\5.0\Import
WfrcLib_TLB.pas マイドキュメント\RAD Studio\5.0\Import



Delphi 2007 フォーム上に帳票を表示

「Delphi 2007」を起動します。
「ファイル」メニューから「新規作成」−「VCL フォームアプリケーション」を選択します。

プロジェクトが作成されフォームが表示されます。

ツールパレットから「TWfrc」を選択しフォームに貼り付けます。


「TWfrc」がツールパレットに登録されていない場合はパッケージがインストールされていない可能性があります。
ユニットとパッケージの作成とインストール」参照。




フォーム上に「Preview Contorl」が表示されます。


この状態でコンパイル(あるいは実行)すると次のエラーとなります。
「ユニット名'WfrcLib_TLB'を解決できません」

この問題を解決するにはプロジェクトにユニット(WfrcLib_TLB.pas)を追加する必要があります。


<ユニットの追加>
プロジェクトマネージャーでプロジェクトを選択、
マウス右クリックでポップアップメニューを表示し「追加」をクリックします。



「プロジェクトに追加」ダイアログが表示されるので、
ユニットとパッケージの作成とインストール」で作成したユニットファイル(pas)を選択します。




プロジェクトにユニット(例:WfrcLib_TLB.pas)が追加されます。



<帳票の表示>
ActiveXのメソッドを実行し帳票を表示します。
この例ではフォーム表示(生成)時に帳票も自動表示するように設定してみます。

フォームに貼り付けたActiveX(この例では Wfrc1)を選択し、
オブジェクトインスペクタで「イベント」タブを表示します。



OnCreate のイベント関数を設定(この例では WfrcCreate)すると、
フォームのコードに WfrcCreate 関数が追加されます。(下記コードの青字箇所)

unit Unit1;

interface

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, OleCtrls, WfrcLib_TLB;

type
    TForm1 = class(TForm)
    Wfrc1: TWfrc;
    procedure WfrcCreate(Sender: TObject);
    private
        { Private declarations }
    public
        { Public declarations }
    end;

var
    Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WfrcCreate(Sender: TObject);
begin
    Wfrc1.SetErrorMode(1, 0);
    Wfrc1.SetOption('KeyPriority', 'high');
    Wfrc1.Open('c:\sample.\sample.wfr', '', '');
    Wfrc1.Import('Data1', 0, 'c:\sample\sample.csv', '', '', '');
    Wfrc1.Create;
end;

end.

この関数内でActiveX(この例では Wfrc1 )のメソッドやプロパティを実行します。(上記コードの赤字箇所)

プロジェクト実行すると次のように表示されます。





[1.1.17.3011]以前のバージョンでは、KeyPriority=high に設定してもキー操作を行うことはできません。