RAD Studio
内容インデックス
前へ上へ次へ
印刷

VCL の TPrinter は,Windows プリンタの詳細をカプセル化するオブジェクトです。インストール済みの使用可能なプリンタの一覧を取得するには,Printers プロパティを使用します。どちらのプリンタオブジェクトも TCanvas を使用します(フォームの TCanvas と同じ)。このため,フォーム上に描画できるものであればプリンタにも印刷できます。イメージを印刷するには,BeginDoc メソッドを呼び出した後,印刷したいキャンバスグラフィック(TextOut メソッドによるテキスト表示を含む)を描画し,EndDoc メソッドを呼び出して印刷ジョブをプリンタに送信します。 

以下の例では,フォーム上のボタンとメモを使用します。ユーザーがボタンをクリックすると,ページの周囲に 200 ピクセルの境界が確保され,メモの中身が印刷されます。 

この例を実行するには, uses 節に Printers を追加してください。

procedure TForm1.Button1Click(Sender: TObject);
var
r: TRect;
i: Integer;
begin
with Printer do
begin
r := Rect(200,200,(Pagewidth - 200),(PageHeight - 200));
BeginDoc;
      Canvas.Brush.Style := bsClear;
for i := 0 to Memo1.Lines.Count do
Canvas.TextOut(200,200 + (i *
                   Canvas.TextHeight(Memo1.Lines.Strings[i])),
                   Memo1.Lines.Strings[i]);
Canvas.Brush.Color := clBlack;
Canvas.FrameRect(r);
EndDoc;
end;
end;

 

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TPrinter *Prntr = Printer();
TRect r = Rect(200,200,Prntr->PageWidth - 200,Prntr->PageHeight- 200);
Prntr->BeginDoc();
for( int i = 0; i < Memo1->Lines->Count; i++)
Prntr->Canvas->TextOut(200,200 + (i *
  Prntr->Canvas->TextHeight(Memo1->Lines->Strings[i])),
  Memo1->Lines->Strings[i]);
Prntr->Canvas->Brush->Color = clBlack;
Prntr->Canvas->FrameRect(r);
Prntr->EndDoc();
}
Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
このトピックに対する評価をお聞かせください フィードバックを送信