Canvasに書いた線を、Printer.Canvas.Pen.Mode:=pmNotCopy で
色を反転してプリンターに出力していますが
FontにはModeプロパティが有りません。
文字の色も反転したいのですが、その方法を教えて下さい。
なにと反転したいのか分かりませんが、文字の描画と背景の描画の順序を
入れ替えるというのは、どうでしょうか?
【反転しない】
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;
既知だったら、すみません。
kazuさん 有り難うございました。
状況を詳しく説明しますと、例えば
黒いバックのフォームに白(薄い色)のフォントで文字を書いたとして
そのFont.Colorのまま印刷すると、白紙に白文字のため文字が印刷されません。
そんな時にRGBの値を反転する方法なのですが。
宜しくお願いします。
単純に、
Font.Color := Font.Color xor $ffffff;
で、RGB形式の色が反転します。
ただし、システムカラーの場合は反転できません。
これじゃ駄目ですか?
にしの さん 有り難うございました。
こんなに簡単なんですネ。
ツイート | ![]() |