喫茶XRAYトップページ

[スレッド全体
]

[2186] Re7:やってみて、質問です?(追記)返信 削除
2009/3/1 (日) 23:55:25 KSCHomePage
▼ Mr.XRAYさん
> ▼ KSCさん
>
> またまたう〜ん.
> 図をよくみて調べてみます.... ?


#2183の書き込みがMr.XRAYさんの#2182の書き込みとタイミングが前後したようです。

#2182の書き込みでやって頂いた結果でビンゴなのですが、
どうやら私のソースで指定している
 FPrev.TextOut(X1, Y1, str);の時のFont情報と
 FPrev.InverseString(X1, Y1, X2, Y2, str, FPrev.Canvas.Font);で指定した
 FPrev.Canvas.Fontが異なっているような気がしてきました。

Mr.XRAYさんのソースのように反転文字の描画用にAFontをCreateして、
a)AFont.Assign(plPrev1.Canvas.Font);を実施した時。
b)AFont.Height := Y2-Y1;を実施した時。

a)は従来どおりでした。
b)は幅方向の空間は空かずに逆に多少オーバー気味でした。(理想に近づいている)

質問
 私のソースが悪いのでしょうが、
 FPrev.InverseString(X1, Y1, X2, Y2, str, FPrev.Canvas.Font);と言う風に
 Font情報を渡すのは無理があるのでしょうか?


[2187] Re8:やってみて、質問です?(追記)返信 削除
2009/3/2 (月) 00:41:22 Mr.XRAY
▼ KSCさん

>  私のソースが悪いのでしょうが、
>  FPrev.InverseString(X1, Y1, X2, Y2, str, FPrev.Canvas.Font);と言う風に
>  Font情報を渡すのは無理があるのでしょうか?


いや,これはないと思います.
どこかでX1の値が変わっているうな気がします.

b)AFont.Height := Y2-Y1;を実施した時。

これをどこで設定しているかは分かりませんが,
StretchDrawMetaFile(ARect,AMetaFile)
は,StrechDraw(ARectに収まるように)に,メタファイルを描画しますから,
実際には,このメソッドを呼出し直前のフォントサイズは関係ありません.

例えば,以下のようにしても結果は全く同じです.
      plPrev1.Canvas.Font.Size :=10;
      plPrev1.StretchDrawMetaFile(ARect,AMetaFile);

上の図がStretchで,下がStretchでない場合(TextOutに相当)です.


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