喫茶XRAYトップページ

[スレッド全体
]

[13314] プレインテキストの印刷返信 削除
2020/4/17 (金) 08:55:01 Mr.XRAY
[ memo1の文を印刷したいのですが?? ]
https://www.petitmonte.com/bbs/answers?question_id=29712
相も変わらずですが.
  何故に ? が 2 つなの
  Memo1 という固有名は使わない --> TMemro
  この前の質問の時に指摘されていた出典なし
  TextHeight のヘルプみても --> 本当に見て読んだの ??? (3 つ)
  肝心の質問の TextHeight が提示コードにない
  PC-9801 --> えっ? Delphi 初めてなの ?

FAQ と言えますね.
とにかく印刷したいのであれば AssignPrn, TextFile でよろしいのては.
TCanvas.TextRect 使うと便利ですけどね.


procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.ScrollBars := ssVertical;
  Memo1.Lines.LoadFromFile('ABC.txt');
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  LPrn: TextFile;
begin
  AssignPrn(LPrn);
  try
    Rewrite(LPrn);
    try
      writeln(LPrn, Memo1.Lines.Text);
    finally
      CloseFile(LPrn);
    end;
  except
    on EInOutError do
      MessageBox(Handle, '印刷エラー', '印刷', MB_ICONWARNING);
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  LFormat : TTextFormat;
  LRect   : TRect;
  LText   : string;
  LWidth  : Integer;
  LHeight : Integer;
begin
  LFormat := [tfLeft, tfWordBreak];
  LText   := Memo1.Lines.Text;

  LRect   := Printer.Canvas.ClipRect;
  LWidth  := LRect.Right - LRect.Left;
  LHeight := LRect.Bottom - LRect.Top;
  SetRect(LRect, LRect.Left + LWidth div 10,
                 LRect.Top + LHeight div 12,
                 LRect.Right - LWidth div 10,
                 LRect.Bottom - LHeight div 10);

  Printer.BeginDoc;
  try
    Printer.Canvas.TextRect(LRect, LText, LFormat);
  finally
    Printer.EndDoc;
  end;//
end;


[13322] サンプルを掲載返信 削除
2020/4/20 (月) 17:58:55 Mr.XRAY
 とにかく印刷したいのであれば AssignPrn, TextFile でよろしいのては.
> TCanvas.TextRect 使うと便利ですけどね.

サンプルとして掲載しておきました.

[ T172_TMemo のテキストまたはテキストファイルの印刷 ]
http://mrxray.on.coocan.jp/Delphi/plSamples/T172_PrintPlainText.htm


[13323] Re:サンプルを掲載返信 削除
2020/4/21 (火) 11:36:02 Mr.XRAY
> サンプルとして掲載しておきました.
>
> [ T172_TMemo のテキストまたはテキストファイルの印刷 ]
> http://mrxray.on.coocan.jp/Delphi/plSamples/T172_PrintPlainText.htm


ちょっと失敗作でした.
後で確認したら,AssignPrn を使用する方法は文字化けが発生します.
笑ってごまかすしかありません.
もちろん,TCanvas.TextRect で印刷する場合も,
拙作 TplPrev コンポを使用して印刷する場合も文字化けは発生しません.
(同じテキストファイル,同じプリンタドライバで確認済み)

記事はそのまま掲載しておきます.


[13324] テキスト印刷のサンプルを追加返信 削除
2020/4/22 (水) 12:35:06 Mr.XRAY
> 記事はそのまま掲載しておきます.

まっ,そんなわけで以下のサンプルを追加しました.

[170] [05_TRichEdit.Print メソッドと PageRect を使用する印刷]
http://mrxray.on.coocan.jp/Delphi/plSamples/T170_RichEdit2.htm#05


[13328] ヘッダとフッタ返信 削除
2020/4/23 (木) 09:01:10 Mr.XRAY
ヘッダとかフッタはどこに,
ということですので,コード内に「ヘッダ部」「フッタ部」とコメントしました.
そこに印刷コードを書いてね.

http://mrxray.on.coocan.jp/Delphi/plSamples/T170_RichEdit2.htm


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82