> う〜む(こればっかり).さ〜て,どうしたらいいのか...
こうしましょう.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内).
|