掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
アンチエイリアスを効かせるにはどうしたらいいでしょうか (ID:41248)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Delphi6です。初心者と中級者の間ぐらいのレベルです。 フォームにボタンとチェックボックスとイメージを用意します。 uses に Clipbrd を追加します。 procedure TForm1.Button1Click(Sender: TObject); var Metafile: TMetafile; MetafileCanvas: TMetafileCanvas; DispW, DispH, MMPerPixelW, MMPerPixelH: Integer; Format: Word; Data: THandle; Palette: HPALETTE; r: TRect; begin DispW := GetDeviceCaps( Canvas.Handle, HORZSIZE ); DispH := GetDeviceCaps( Canvas.Handle, VERTSIZE ); MMPerPixelW := Round( DispW * 100 / Screen.Width ); MMPerPixelH := Round( DispH * 100 / Screen.Height ); Metafile := TMetafile.Create; try with Metafile do begin Enhanced := True; MMWidth := Image1.Width * MMPerPixelW; MMHeight := Image1.Height * MMPerPixelH; Width := Image1.Width; Height := Image1.Height; end; MetafileCanvas := TMetafileCanvas.Create( Metafile, Canvas.Handle ); // 図形描画 MetafileCanvas.Ellipse(0, 0, 40, 40); // 文字列描画 r := Rect(50,15,Image1.Width,Image1.Height); if Checkbox1.Checked = true then DrawText(MetafileCanvas.Handle, '文字列', -1, r, DT_LEFT ); MetafileCanvas.Free; Image1.Picture.Assign(Metafile); Metafile.SaveToClipboardFormat( Format, Data, Palette ); Clipboard.SetAsHandle( Format, Data ); finally Metafile.Free; end; end; ボタンをクリックするとクリップボードにコピーされます。 これをWORDに貼り付けると、チェックボックスの状態によってWORD に貼り付けた図形のアンチエイリアスが、効いたり効かなかったりします。 チックボックスがOFFの時・・・図形にアンチエイリアスが働く チックボックスがONの時・・・・図形にアンチエイリアスが働かない 文字列にアンチエイリアスが働く つまり、図形だけの時はアンチエイリアスが働くのに、文字列を追加すると 図形のアンチエイリアスが解除されてしまいます。 この挙動の原因がつかめないで困っています。 メインの質問とは別件ですが、Imageコンポーネントの表示は常にアンチ エイリアスが働かない状態ですが、これにアンチエイリアスを効かせる ことはできるのでしょうか? ご存知の方がいらっしゃいましたら、よろしくお願いいたします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.