No, this is not possible with the standard TSpeedButton
without creating your own descendant.
TSpeedButton
does all of its drawing in response to the WM_PAINT
message, and there is no way for you to inject another control behind the content that is drawn, because the drawing would erase the area where your control is drawing itself. You can see this yourself; you have the source code for TSpeedButton
in almost every Delphi and C++ Builder version.
In addition, a TSpeedButton
is a graphical control, not a windowed control (it derives from TGraphicControl
instead of TWinControl
), so it does not have a window handle to be used as the parent for other controls.