フォームの背景が寂しいので何か描こうかと思うのですが 単純にビットマップを貼ると大きいので
 演算で描こうとしました。
  OnPaintイベントで描けばいいやと単純に考えてました
ところが、画面に張ったコントロールが少し変化すると画面全体の再描画がおきてしまいます
その為に非常に重くなってしまいました。
描画が必要な場所だけを描くにはBeginPaint した時の TPaintStruct構造体が必要です
これはVCLソースを見ると スタック上に取られて読み出せないようです

といってもWMPaintはPrivateになってるので継承出来ませんよね?
それに、後から再利用しようと思ったので、フォームのOnPaintをフックするだけの
コンポーネントにするつもりでしたから WMPaintは目的に合いません
もしかして、サブクラスによるメッセージフックしかないですか?