お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"RE:Panelをそのままプリント"

この発言は
#00723 TN さんのPanelをそのままプリント
に対するコメントです

もっと簡単にできました.ホントにそのまんま.  普通にPanelを貼って普通にコンポを載せておき,ボタンを押すと, 縦横を紙に合わせて拡縮して紙いっぱいに印刷します.WinControlとその BorderStyleもいちおうOK.  等倍でない場合フォントの都合でLabelの字が切れたりします. 縦横等倍にすればOK  Pen,Brushなどに工夫の余地有り. procedure TForm1.Button1Click(Sender: TObject); var DC: HDC; DevPPIX, DevPPIY: integer; begin try Printer.BeginDoc; DC := Printer.Canvas.Handle; DevPPIX := GetDeviceCaps( DC, LOGPIXELSX ); DevPPIY := GetDeviceCaps( DC, LOGPIXELSY ); SetMapMode( DC, MM_ANISOTROPIC ); SetViewPortExtEx(DC, DevPPIX, DevPPIY, nil ); SetViewPortOrgEx(DC, 0, 0, nil ); SetWindowExtEx( DC, Round( PagePanel.Width * DevPPIX / Printer.PageWidth ), Round( PagePanel.Height * DevPPIY / Printer.PageHeight ), nil); // 幅を合わせて等倍 // Round( PagePanel.Width * DevPPIX / Printer.PageWidth ), nil); PagePanel.PaintTo(DC, 0, 0); finally Printer.EndDoc; end; end; プリンタ:BJC455J モノクロインク 360X360dpi ドライバ:Cannon BJ Raster Printer Driver V2.31 OS:Windows NT4.0 SP3 TN(CQJ01721) Original document by TN 氏 ID:(CQJ01721)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum