|
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
|