Q: If a component doesn't relay the message, do I have to write my own version that passes the messages that I need, or is there way to tap (from a TForm or else where) into the message loop, and grap what I need?
A: To respond to, say, the wm_paint message, you would add --
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
to your component. The you could have
procedure TWhateverComponent.WMPaint(var Message: TWMPaint);
begin
{have your way with the component}
end;
This will work for any windows message. Most components
respond to the more popular messages already, and you can override their
event handlers.