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.
|
このトピックに対する評価をお聞かせください フィードバックを送信
|