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