お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





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

"WYSWYGで印字"



{画面でみた通りの位置に印字するサンプルです。}
 //Usesに printersを追加して下さい。
 //イカはLabelとButtonを一つずつ配置してボタンを押すと
 //ラベルを印字するサンプルです

procedure TForm1.Button1Click(Sender: TObject);
var
   PrinterResX,PrinterResY,MonitorRes:integer;
   RatioX,RatioY:Extended;
   //多分不要
   procedure   SetFontSize(theFontheight:integer;TargetCanvas:TCanvas;
                             RatioYY:Extended);
   var
      TLetterH:Extended;
   begin
      TLetterH:=ABS(TargetCanvas.Font.Height);
      
TargetCanvas.Font.Size:=Trunc(TargetCanvas.Font.Size*theFontheight*Ratio
YY/TLetterH)
   end;
begin
   //プリンターの解像度を得る
   PrinterResX:=GetDeviceCaps(Printer.Handle,LOGPIXELSX);
   PrinterResY:=GetDeviceCaps(Printer.Handle,LOGPIXELSY);
   //モニターの解像度を得る
   MonitorRes:=GetDeviceCaps(Canvas.Handle,LOGPIXELSY);
   //縦横の比率を出す。
   RatioX:=PrinterResX/MonitorRes;
   RatioY:=PrinterResY/MonitorRes;
   //印字
   Printer.BeginDoc;
   Try
      with printer.canvas do
      begin
         Font:=Label1.Font;
         //setFontSizeは多分不要
         //setFontSize(Label1.Font.height,Printer.Canvas,RatioY);
         Brush.style:=bsClear;
         TextOut(Trunc(Label1.left*RatioX),
                 Trunc(Label1.Top*RatioY),
                 Label1.Caption);
      end;
   finally
      Printer.EndDoc;
   end;
end;
                                 98/01/11(日) 12:09 凛(MXB01744)

Original document by 凛              氏 ID:(MXB01744)


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

Copyright 1996-2002 Delphi Users' Forum