掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
RichEditの内容もForm.Printで印刷させるには? (ID:40427)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Mr.XRAYさん、こんにちは。 リンク先を参考にして、望む処理ができました。 「一発」という訳にはいきませんでしたが 大した手間も無くできました。 今後のためにコードを載せておきます。 ありがとうございました。 下記のコードで if PrinterSetupDialog1.Execute then Form1.Print; と、同等の結果が得られます。 function PrintWindow(hwnd: HWND; hdcBlt: HDC; nFlags: UINT): BOOL; stdcall; external 'user32.dll'; var BMP: TBitmap; ALeft: Integer; ATop: Integer; AWidth: Integer; AHeight: Integer; ARect: TRect; begin if PrinterSetupDialog1.Execute then begin BMP := TBitmap.Create; try BMP.Height := Form1.ClientHeight; BMP.Width := Form1.ClientWidth; BMP.Canvas.Lock; try PrintWindow(Form1.Handle, BMP.Canvas.Handle, 1); finally BMP.Canvas.Unlock; end; Printer.BeginDoc; try ALeft := 0; ATop := 0; AWidth := Printer.PageWidth; AHeight := Trunc (AWidth * BMP.Height / BMP.Width); ARect := Rect(ALeft, ATop, AWidth, AHeight); Printer.Canvas.StretchDraw(ARect, BMP); finally Printer.EndDoc; end; finally BMP.Free; end; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.