Jusqu'à présent, toutes les icônes visibles sur les boutons ou les éléments de menu étaient codées lors du Design des fenêtres.
Delphi 5 n'acceptant pas d'icônes (.ico) pour les boutons de type TSpeedButton, ce sont en fait des images (.bmp), en 16 couleurs (4 bits) sous The X-Tools 3, et désormais 16 millions de couleurs (24 bits) sous The X-Tools 4. Les 8 bits supplémentaires (Canal alpha / Alpha Blending) permettant la transparence ne sont pas supportés, mais Delphi 5 accepte de considérer comme transparents - et donc de ne pas afficher - tous les pixels d'une image qui sont identiques au pixel en bas à gauche.
Chaque image utilisée pour les boutons est donc préparée avec un fond spécifique (un beige peu courant dans les icônes), en prenant bien soin de "libérer" le pixel en bas à gauche, et est de largeur double, afin de spécifier l'icône quand le bouton est grisé : Comme décrit la semaine dernière, The X-Tools 4 proposera une réserve d'outils, fonctions et accessoires, qu'il sera possible de placer sur des barres d'outils ou dans des menus. Ces boutons doivent être créés à l'éxecution, et il faut donc avoir stocké à l'avance leurs icônes dans une liste indépendante. Cette liste sera partiellement remplie lors du Design mais les icônes du Panneau de configuration seront ajoutées à l'éxecution. Elle contiendra donc des véritables icônes en 32 bits.
Cette instruction sera utilisée pour extraire de la liste l'icône d'un bouton, la convertir en image et l'afficher sur le bouton:
Code : Tout sélectionner
Kernel.Image_List.GetBitmap(12, Button.Glyph);