But there is no such analogue of the button in the VCL anymore. In KOL, a graphical button exactly repeats the appearance and functionality of a regular button (and even slightly poorer, considering that a window button in KOL can contain an icon instead of text). This is not an analogue of TBitbtn from the VCL (which also holds its own window handle), and not an analogue of TSpeedButton (since it can capture input focus), namely, an analogue of TButton, but without a window handle. In particular, this means that you can already do "Miner" on the graphic buttons without fear of the consequences associated with poor performance or even a crash of the operating system and applications running in parallel in the case of a very large number of such buttons.
As you know, the main functionality of a button is its ability to be "pressed" by a manipulator of the "mouse" type and to call the OnClick handler associated with this event, if any. In addition, the button must be able to be in focus (changing its appearance slightly, usually by adding a dotted border inside the button), and then such a visual button can be "pressed" from the keyboard. This is probably why the graphical analogue of the button was not created in the VCL, because there is a problem with transferring focus to an object that cannot have focus by definition, simply because this object does not have a window handle. In KOL, this problem is solved by simulating focus: the focus actually belongs to the parent window object, but this object "knows"
Graphic button constructor:
NewGraphButton(Parent, Caption)
Syntax
function NewGraphButton( AParent: PControl; const ACaption: KOLString ): PControl;
Creates graphic button.