Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2003年09月13日] [更新 2016年04月19日] 印刷プレビュー制御コンポーネント
印刷プレビュー制御コンポーネント
テストプログラム TextFile
動作確認等 Windows 7 U64(SP1) + Delphi XE(UP1) Pro







テキスト文書の描画 ( 先読み方式 )


テキストファイルの読込み描画メソッドのテストプログラムです.
テストプログラムのフォルダにある Readme.txt を読込んで表示します.
複数頁にわたるテキスト文書の印刷コード例はメソッドの説明ページにあります.


図1
設計時画面
図2
実行画面

リスト1
テストプログラムのコード
unit TextFileUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, plPrev, Buttons;

type
  TForm1 = class(TForm)
    BitBtn2: TBitBtn;
    plPrev1: TplPrev;
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

//=============================================================================
//  ディスクからテキストを読込んで設定したマージン内に印刷
//  マージンを越える部分は印刷しない
//  TplPrevのTextOutFileメソッドを使用
//
//  印刷プレビューコンポ(plPrev1)のプロパティを以下の様に設定している
//  FormPositon := poDesigned;
//  FormTop     := 0;
//  FormLest    := 0;
//  FormHeight  := 700;
//  FormWidth   := 800;
//
//  TFormはPositionをpoDesignedにしないとサイズ関係プロパティが反映されない
//  印刷プレビューフォームの場合,意図的に継承フォームを作成すれば,その継承フ
//  ォームの設定値が有効となる
//  このテストプログラムは自動作成の継承フォームに表示している
//=============================================================================
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  LRowH  : Integer;
  LLastY : Integer;
begin
  plPrev1.TopMargin    := 500; //上端マージン
  plPrev1.BottomMargin := 250; //下端マージン
  plPrev1.LeftMargin   := 300; //左端マージン
  plPrev1.RightMargin  := 250; //右端マージン

  plPrev1.BeginDoc;
  try
    plPrev1.FontSize(10.5);
    plPrev1.FontName('MS P明朝');
    LRowH  := 60;
    LLastY := plPrev1.TextOutFile(plPrev1.TopMargin,
                                 plPrev1.LeftMargin,
                                 plPrev1.PaperWidth - plPrev1.RightMargin,
                                 LRowH,
                                 'Readme.txt');
    //テキストの描画領域を3mmの余白をつけて矩形で表示
    plPrev1.PenColor(clBlue);
    plPrev1.PenWidth(3);
    plPrev1.RectLine(plPrev1.LeftMargin - 30,
                     plPrev1.PaperWidth - plPrev1.RightMargin + 30,
                     plPrev1.TopMargin - 30,
                     LLastY);
  finally
    plPrev1.EndDoc;
  end;

  //プレビュー開始
  plPrev1.ShowModal;
end;

end.