Hello, Wouldn't it better to make Canvas protected and pass it on the OnPaint event? I'm almost sure is was also public in Delphi, and I don't even remember Delphi having OnPaint in TCustomControl, but... BTW why is OnPaint called inside TCustomControl.Paint instead of TCustomControl.PaintWindow? Best regards, Flávio