▼ Mr.XRAYさん
> procedure TForm1.InverseString(X1,Y1,X2,Y2: Integer; Text: String; AFont: TFont);
> ・
> ・
> ・
> ・
> try
> ACanvas:=TMetafileCanvas.Create(AMetaFile,0);
> try
> //メタファイルに必要なサイズを求める
> ACanvas.Font.Assign(AFont);
> AWidth :=ACanvas.TextWidth(Text);
> AHeight:=ACanvas.TextHeight(Text);
> //一旦描画を終了してメタファイルのサイズを設定
> ACanvas.Free;
> AMetaFile.Width :=AWidth;
> AMetaFile.Height:=AHeight;
> //メタファイルCanvasを再生成
> ACanvas :=TMetafileCanvas.Create(AMetaFile,0);
> ACanvas.Font.Assign(AFont);
> //フォントを正しく設定
> AdjustFont(ACanvas); → コメント化
>
> ACanvas.Brush.Style:=bsClear;
> ACanvas.TextOut(0,0,Text);
> finally
> ACanvas.Free;
> end;
> ・
> ・
> ・
詳しくは、まだ調べていませんが上記の「AdjustFont(ACanvas);」の実行文を
コメント化する事でMr.XRAYさんの#2185のサンプル画面と同じ結果を得られました。
Mr.XRAYさんのソースと私のソースの何が違うのでしょうね?
また、何か気づければ書き込みします。
|