Fontの色を反転して出力するには?

解決


Taku  2001-12-06 23:50:53  No: 340

Canvasに書いた線を、Printer.Canvas.Pen.Mode:=pmNotCopy  で
色を反転してプリンターに出力していますが
FontにはModeプロパティが有りません。
文字の色も反転したいのですが、その方法を教えて下さい。


kazu  2001-12-07 01:09:59  No: 341

なにと反転したいのか分かりませんが、文字の描画と背景の描画の順序を
入れ替えるというのは、どうでしょうか?
【反転しない】
with Canvas do begin
  Brush.Color := clBlack;
  Rectangle(20, 20, 100, 100);
  Font.Size := 50;
  Brush.Style := bsClear;
  TextOut(0, 0, 'あいうえお');
end;
【反転する】
with Canvas do begin
  Font.Size := 50;
  Brush.Style := bsClear;
  TextOut(0, 0, 'あいうえお');
  Pen.Mode := pmNotXor;
  Brush.Color := clBlack;
  Brush.Style := bsSolid;
  Rectangle(20, 20, 100, 100);
end;
既知だったら、すみません。


Taku  2001-12-07 02:55:40  No: 342

kazuさん  有り難うございました。
状況を詳しく説明しますと、例えば
黒いバックのフォームに白(薄い色)のフォントで文字を書いたとして
そのFont.Colorのまま印刷すると、白紙に白文字のため文字が印刷されません。
そんな時にRGBの値を反転する方法なのですが。
宜しくお願いします。


にしの  2001-12-07 06:28:00  No: 343

単純に、
Font.Color := Font.Color xor $ffffff;
で、RGB形式の色が反転します。
ただし、システムカラーの場合は反転できません。

これじゃ駄目ですか?


Taku  2001-12-07 07:43:41  No: 344

にしの  さん  有り難うございました。
こんなに簡単なんですネ。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加