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;
|
|