Mega Code Archive
From what should you descend your component
The easiest way is to decend from an existing component that has most of the characteristics you are looking for.
If you have to create a custom component from "scratch" then use one of the classes listed below.
TComponent - The base starting point for non-visual
components.
TWinControl - The base starting point for components
that need to have window handles.
TGraphicControl - A good starting point for visual components
that don't need the overhead of a window
handle. This class has a Paint method, that
should be overridden, but no canvas.
TCustomControl - The most common starting point for visual
components.
This class has a Window handle, common events
and properties, and most importantly a canvas
with a Paint() method.