喫茶XRAYトップページ

[スレッド全体
]

[394] Re7:リッチエディットの印刷で悩んでいます返信 削除
2005/8/8 (月) 17:19:01 Mr.XRAY
> う〜む(こればっかり).さ〜て,どうしたらいいのか...

こうしましょう.TplPrevの継承元であるTCustomplPrevのprotected部の
メソッドを使用してみることにします.
まず適当な場所に(ここではimplementationにしている)
(TPrevはなんでもよい)

implementation

type
   TPrev = class(TCustomplPrev);

と定義して下さい.次に,
//TplPrevでは0.1mmm単位に戻すということ
  SetMapMode(Range.hdc,OldMap);
の後に以下の行を追加して下さい.

TPrev(plPrev1).ScaleInitialize(plPrev1.Canvas,False);
(第2引数はFalseでもTrueでもどちらでも可)

そして,例えば,印刷のルーチンを以下の様にします.

//====================================================================
//  印刷プレビュー(逐次表示方式)の印刷メソッド
//  で,ここでは別の描画ルーチン作成して呼出している.
//====================================================================
procedure TForm1.TestPrint;
begin
     plPrev1.FontHeight(60);
     plPrev1.TextOut(200,200,'リッチエディトの印刷例');
     RichEditPrint(300,1900,450,1800,RichEdit1);

     plPrev1.Canvas.Font.Height:=80;
     plPrev1.Canvas.TextOut(200,2000,{LastY+50,}'次の行');
     plPrev1.Canvas.TextOut(200,2300,{LastY+50,}'次の行');
end;

これでしばらく様子をみて下さい.
参考までに,RichEdit1,RichEdit2のサンプルコードは,VCLのRichEditのPrint
メソッドを真似たものです(コードはComCtrls.pas内).




[395] Re8:リッチエディットの印刷で悩んでいます返信 削除
2005/8/8 (月) 23:36:52 Mr.XRAY
おっと間違えました.

> TPrev(plPrev1).ScaleInitialize(plPrev1.Canvas,False);
> (第2引数はFalseでもTrueでもどちらでも可)


この後に,

plPrev1.Canvas.TextOut(200,TwipsToMili(Range.rc.Bottom)+50,'次の行');

ですね.TPrev(plPrev1)... で再スケーリングしています.
TextOutの前にFontの設定をした方がいいです.
また,プリンタによって,微妙に位置がズレるようです.

[396] Re9:リッチエディットの印刷で悩んでいます返信 削除
2005/8/9 (火) 01:08:49 Andy
▼ Mr.XRAYさん
> おっと間違えました.
>
> > TPrev(plPrev1).ScaleInitialize(plPrev1.Canvas,False);
> > (第2引数はFalseでもTrueでもどちらでも可)
>
> この後に,
>
> plPrev1.Canvas.TextOut(200,TwipsToMili(Range.rc.Bottom)+50,'次の行');
>
> ですね.TPrev(plPrev1)... で再スケーリングしています.
> TextOutの前にFontの設定をした方がいいです.
> また,プリンタによって,微妙に位置がズレるようです.


ありがとうございます。
今度は、うまくいくみたいです。
こんなやり方は露と知りませんでした。

ただ、気が付いた点ですが、サンプルのRichtEdit1とRichtEdit2ではプレビューが
違うみたいで、RichtEdit2の方では大きくなって、はみ出ます。
印刷では、正常に印刷されますが

まあ、何はともあれ、悶々としていた、気分が晴れて着ました。

あれから、海外のホームページを色々見まして、印刷だけではうまくいくように
なりましたが、半分眠気眼でやっていましたので、わけ分からなくなってきました
ので寝ました。

先ほど、病院から帰ってきて、見まして、感謝感激です。




[398] Re10:リッチエディットの印刷で悩んでいます返信 削除
2005/8/15 (月) 00:03:50 Mr.XRAY
▼ Andyさん

> こんなやり方は露と知りませんでした。

これは作者でないと思いつかないかも...
でも,VCLのソースをみて,実は他のDelhi附属のコンポーネントでも同じよう
なことをやっていたりして (^_^)

> ただ、気が付いた点ですが、サンプルのRichtEdit1とRichtEdit2ではプレビューが
> 違うみたいで、RichtEdit2の方では大きくなって、はみ出ます。
> 印刷では、正常に印刷されますが


時間がとれたら再度確認してみます.


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