喫茶XRAYトップページ

[スレッド全体
]

[1282] Re3:自作リッチテキストエディタで背景を黒にしているときの印刷が・・・返信 削除
2007/7/4 (水) 20:11:56 Mr.XRAY
▼ 宮さん

RichEditなんですが、背景色と文字の色はどのように設定しているのでしょうか。
また、文字の色は全て同色なのでしょうか。

[1283] Re4:自作リッチテキストエディタで背景を黒にしているときの印刷が・・・返信 削除
2007/7/4 (水) 21:20:50 Mr.XRAY
> RichEditなんですが、背景色と文字の色はどのように設定しているのでしょうか。
> また、文字の色は全て同色なのでしょうか。


文字の背景色ではなく、RichEdit全体の背景色だから関係ないようです。
問題は、文字の色をどのように設定してるかが関係しますが、
画面(Form)に表示している時と、印刷(プレビュー)の時で文字の色を変更
しないと・#95;メみたいですね。

RichEditの文字の色の変更は以下に参考コードがあります。
http://www2.big.or.jp/~osamu/Delphi/tips.cgi?index=0216.txt

以下は、文字の色を
(1) Formに表示した時に変更
(2) プレビューの時に黒に変更
(1) プレビューで閉じたらまた変更
という仕様になっています。関数にするなり、適当にいじって下さい。
ANDYさん、スンマセン。ちょっと残念でした。(^_^;)

// http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/T_RichEdit1.htm
// のコード参照
procedure TForm1.FormShow(Sender: TObject);
var
     AFilePath: String;
     CharFmt  : TCharFormat2;
begin
     AFilePath:=ExtractFilePath(Application.ExeName)+'\RichText.RTF';
     if FileExists(AFilePath) then begin
       RichEdit1.Lines.LoadFromFile(AFilePath);
     end;

     with CharFmt do begin
       cbSize:=SizeOf(CharFmt);
       dwMask :=CFM_COLOR; //文字の色だけ変更のフラグ
       crTextColor:=clWhite;
     end;
     RichEdit1.Perform(EM_SETCHARFORMAT,SCF_ALL,lParam(@CharFmt));
end;

// プレビューのメソッド(プレビューボタンクリックイベント内でも可)
procedure TForm1.TestPrint;
var
     CharFmt  : TCharFormat2;
begin
     with CharFmt do begin
       cbSize:=SizeOf(CharFmt);
       dwMask :=CFM_COLOR;
       crTextColor:=clBlack;
     end;
     RichEdit1.Perform(EM_SETCHARFORMAT,SCF_ALL,lParam(@CharFmt));

     plPrev1.FontHeight(60);
     plPrev1.TextOut(200,200,'リッチエディトの印刷例');
     RichEditPrint(300,1900,450,1800,RichEdit1);

     with CharFmt do begin
       cbSize:=SizeOf(CharFmt);
       dwMask :=CFM_COLOR;
       crTextColor:=clWhite;
     end;
     RichEdit1.Perform(EM_SETCHARFORMAT,SCF_ALL,lParam(@CharFmt));
end;



[1286] Re5:自作リッチテキストエディタで背景を黒にしているときの印刷が・・・返信 削除
2007/7/5 (木) 10:59:28
ANDYさん、Mr.XRAYさんありがとうございました。

▼ Mr.XRAYさん
> > RichEditなんですが、背景色と文字の色はどのように設定しているのでしょうか。
> > また、文字の色は全て同色なのでしょうか。
>

すみません。
RichEditの背景と文字色でした。
設定はRichEditを開くとき
RichEdit1.Color := iniFIle.ReadInteger('Rich','COLOR', 0);
RichEdit1.Font.Color := iniFIle.ReadInteger('Rich','FontColor', 16777215);
のようにしています。

Mr.XRAYさんのコンポーネントを使いこなせず、
コードを見せたら思わず吹き出されるだろうと恥ずかしがったのですが。
また教えてください。


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