TBasicBtn sert de classe de base pour les boutons outils (non focalisables): gestion de tous les styles de boutons (autoUp, sélectionné, groupés exclusifs) et de tous les états (2 états survol souris, 2 états MouseDown, checked, 2 états disabled). Des options permettent d'affiner les états et le comportement du bouton. TBasicBtn implémente aussi des propriétés et méthodes pour l'affichage de Caption : layout, alignement multi-lignes...
TSimpleBtn est une classe dérivée de TBasicBtn. Il ajoute principalement :
- une propriété Glyphs : chaque état peut avoir son glyph. Les glyphs sont stockés soit dans un ImageList, soit dans un fichier ressources.
- un événement OnBeforePaint: p.ex. pour dessiner un fond de bouton, une bordure...
TDoubleBtn est une classe dérivée de TSimpleBtn: Ajout d'une flèche sur le côté droit (comme un TToolButton de style tbsDropDown). L'événement OnArrowClick permet de faire tous les traitements. Le dessin par défaut peut être paramétré (direction, taille, couleur...) ou même remplacé par un glyph (dans l'événement OnBeforePaint).
Remerciements pour leurs conseils à Mauricio, f0xi et Florenth.