In dem Source oben hast Du die private Variable FCanvas, im Paint verwendest Du jedoch Canvas.
Wenn Dir Messages fehlen, sieh einfach in den Sourcen zu TButton oder TSpeedButton nach, welche es dort gibt. Du kannst die Komponenten auch einfach in eine eigene
Unit kopieren, umbenennen und dann schauen, welche Messages abgearbeitet werden.