I am wondering if you want to create a control like TSpeedButton, or if you only need the same end result ...
Programming from scratch is, of course, possible, but I would only do it as a training exercise.
Assuming you want to achieve a similar end result ...
In Delphi TSpeedButton there are differences from the standard TButton, which the developers find useful - it was flat, it did not focus, and it consumed less resources than a regular button (because it did not have a basic Windows handle).
Which ones are important to you?
, , FlatStyle = Flat ( PopUp) TabStop = false. , Image, ImageList ImageIndex/ImageKey.
, - Krypton Toolkit ( , . http://www.componentfactory.com/toolkit_buttoncontrols.php).
, , , , .
Windows 3.1 (Delphi 1) Windows 95 (Delphi 2) , . Windows XP Vista , - , . , .