948 :
931:
Canvasを扱う時って、実はBrush.Color:= とかやるだけで、結構コストかかるんですよね。
色を変えながら1度に数万回FillRectするプログラムを組んだのですが、Brush.Colorは
あまりに時間がかかるので、varでローカルのTColorを宣言して、目的の色と前に指定した
色を比較して、異なっていたらBrush.Colorに代入・・として、少し高速化することができました。
Brush.Colorが遅いのは、プロパティとして実装されているからなのでしょうね。
APIだと呼び出す毎に色を指定しますよね。こっちの方がこのケースの場合は効率がよさそうです。
ちなみにTextOutも1度の処理で数百、数千呼び出すケースもあるので、APIを使う方法は
とても参考になりました。
手元のDelphiは、7と2005なので、ソースを追ってみて、参考にしてみます。
ちなみに、画面がちらつくのを防ぐのにAPIを使うメリットは少ないでしょうが、
オフスクリーンビットマップの描画にAPIを使うと速くて助かりますよ。