методы, ловящие сообщения надо по-особому обьявлять:
Код:
TForm = class(TForm)
...
protected
procedure PaintProc(var Msg: TMessage); message WM_PAINT;
а событие OnFormPaint вызывается при фактической отрисовке формы, например, если обратно из-за границ экрана форму перетащить