Top / Programming / C++Builder / C++Builder 2007で印刷プレビュー制御コンポーネントを使う

C++Builder 2007で印刷プレビュー制御コンポーネントを使う

Mr.XRAY氏が公開している印刷プレビュー制御コンポーネントをC++Builder 2007で使う方法。

使い方は簡単で、必要なファイルをプロジェクトに追加して、includeするだけです。

コンポーネントのダウンロード

必要なコンポーネントをダウンロードします。

プロジェクトの編集

コンポーネントをダウンロードしたら、以下のファイルをプロジェクトに追加します。

プロジェクトオプションの自動生成フォームを編集し、plPrevFormを自動生成フォームから外します。

  1. メニューの「プロジェクト」-「オプション」を選択します。
  2. 「フォーム」を選択します。
  3. plPrevFormを「自動生成フォーム」から「使用可能フォーム」に移動します。

プロジェクトを再構築すると、pasからhppファイルが作成されます。

plPrev.hppで次のエラーメッセージが表示される場合は、

[BCC32 エラー] plPrev.hpp(31): E2209 インクルードファイル 'Plsetprinter.hpp' をオープンできない
[BCC32 エラー] plPrev.hpp(37): E2209 インクルードファイル 'Textutils.hpp' をオープンできない

plPrev.hppを編集します。

#include <Plsetprinter.hpp> // Pascal unit
#include <Textutils.hpp>    // Pascal unit

の行を

#include "Plsetprinter.hpp" // Pascal unit
#include "Textutils.hpp"    // Pascal unit

にします。

# もっと良い方法があったら教えて下さい。

使用方法

印刷プレビュー制御コンポーネントを使用するソースコードで、includeします。

#include "plSetPrinter.hpp"
#include "plPrev.hpp"

後は使用するだけです。

コードの書き方はDelphiと同じです。

void __fastcall TForm1::Button1Click(TObject *Sender)
  TplSetPrinter* printer = new TplSetPrinter(this);
  TplPrev* plPrev1 = new TplPrev(this);
  plPrev1->plSetPrinter = printer;
  plPrev1->plSetPrinter->Orientation = poPortrait;
  plPrev1->Title = "モードレス表示";
  plPrev1->BeginDoc();
  try
  {
    plPrev1->Canvas->Pen->Width = 5;
    plPrev1->Canvas->Rectangle(500,800,1500,2000);
    plPrev1->Canvas->Font->Height = 100;
    plPrev1->Canvas->TextOut(500,800,Text);
    plPrev1->Canvas->Pen->Width = 1;
    plPrev1->Canvas->MoveTo(500,900);
    plPrev1->Canvas->LineTo(1500,900);
  }
  __finally
  {
    plPrev1->EndDoc();
  }
  plPrev1->Show();
}