Icône associé à un composant dans la palette d'outils

Résolu
informatixo Messages postés 129 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 25 juillet 2012 - 20 nov. 2008 à 11:33
informatixo Messages postés 129 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 25 juillet 2012 - 21 nov. 2008 à 14:35
Bonjour le forum,

J'ai une question à propos de l'icône qui peut être associé à un composant lorsqu'il est dans la palette d'outils.

L'aide de Delphi dit ceci :

Création de bitmaps pour les composants
 
Chaque composant a besoin d'un bitmap pour être représenté sur la palette d'outils. Si vous ne spécifiez pas votre propre bitmap, l'EDI utilise un bitmap par défaut. Etant donné que les bitmaps de palette sont uniquement requis à la conception, vous ne les compilez pas en l'unité de compilation du composant. En revanche, ils doivent être fournis dans un fichier de ressources Windows portant le même nom que l'unité, mais avec l'extension .dcr (dynamic component resource). Vous pouvez créer ce fichier de ressources en utilisant un éditeur d'images.
 
Lorsque vous créez de nouveaux composants, vous pouvez définir vos propres bitmaps pour des composants personnalisés.
Pour créer un nouveau bitmap :
 
Choisissez OutilsEditeur d'images.
Dans la boîte de dialogue Editeur d'images, choisissez FichierNouveauRessources composants (.dcr).

Dans la boîte de dialogue SansTitre1.dcr, cliquez avec le bouton droit sur Sommaire. Choisissez NouveauBitmap.
Dans la boîte de dialogue Propriétés du bitmap, attribuez la valeur 24 pixels au champ Largeur et au champ Hauteur. Vérifiez que l'option VGA (16 couleurs) est cochée. Cliquez sur OK.
Bitmap et Bitmap1 apparaissent sous Sommaire. Sélectionnez Bitmap1, cliquez avec le bouton droit et choisissez Renommer. Donnez au bitmap le nom de la classe de votre nouveau composant, y compris le T, en inscrivant toutes les lettres en majuscules. Par exemple, si le nom de votre nouvelle classe est TMyNewButton, nommez le bitmap TMYNEWBUTTON.
Remarque: Vous devez mettre toutes les lettres en majuscules, quelle que soit la façon dont vous avez saisi le nom de la classe dans la boîte de dialogue Nouveau composant.

Double-cliquez sur TMYNEWBUTTON pour afficher une boîte de dialogue contenant un bitmap vide.
Utilisez la palette de couleurs située en bas de l'éditeur d'images pour concevoir votre icône.
Choisissez FichierEnregistrer sous et donnez au fichier ressource (.dcr ou .res) le même nom de base que l'unité dans laquelle vous voulez que la classe du composant soit déclarée. Par exemple, nommez le fichier ressource MyNewButton.dcr.
Choisissez ComposantNouveau composant. Suivez les instructions de création d'un nouveau composant avec l'expert Composant . Assurez-vous que le source du composant, MyNewButton.pas, est dans le même répertoire que MyNewButton.dcr.
Pour une classe appelée TMyNewButton, l'expert Composant nomme le source du composant, ou unité, MyNewButton.cpp et le place par défaut dans le répertoire LIB. Cliquez sur le bouton Parcourir pour désigner un autre emplacement pour l'unité générée pour le composant.

Remarque: Si vous utilisez un fichier .res pour le bitmap plutôt qu'un fichier .dcr, ajoutez au source du composant une référence qui lie la ressource. Par exemple, si votre fichier .res s'appelle MyNewButton.res, après vous être assuré que le .pas et le .res se trouvent dans le même répertoire, ajoutez ce qui suit à MyNewButton.pas sous la section type :

{*R *.res}
Choisissez ComposantInstaller un composant pour installer votre composant dans un package existant ou un nouveau package. Cliquez sur OK.
Votre nouveau package est construit puis installé. Le bitmap représentant votre nouveau composant apparaît sur la catégorie de la palette d'outils choisie dans l'expert Composant.

Donc en résumé l'icône doit être en 16 bits et en 24 x 24.

Je voudrais savoir si quelqu'un aurait une idée pour utiliser des icônes de meilleure qualité ou si c'est définitivement perdu d'avance ?

Merci à tous pour votre aide.

Que la force soit avec vous !

2 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
20 nov. 2008 à 21:51
tu peux utiliser des images 24x24 en BMP 24bits

3
informatixo Messages postés 129 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 25 juillet 2012 1
21 nov. 2008 à 14:35
Merci foxi pour ta réponse qui me donne de l'espoir.

Je pensais qu'il était possible d'indiquer des icônes plus grande que 24 x 24 mais apparement ce n'est pas possible.

Je viens d'essayer avec des icônes en 24 x 24 bitmap 24 bits mais pour la transparence ça ne fonctionne pas très bien.

Dans mes icônes je précise la transparence par la couleur fushia.

Il y a des icônes où la couleur fushia est naturellement présente dans le coin inférieur gauche du bitmap et la transparence fonctionne parfaitement. Cependant il y a d'autres icônes où je rajoute un pixel fushia en bas à gauche avec Gimp (car les zones de fushia ne sont pas naturellement présente en bas à gauche) pour que Delphi gère la transparence et là patatra rien n'apparaît à part l'icône par défaut de Delphi pour les nouveaux composants.

Pour ces icônes particulières, lorsque que je ne mets pas le pixel fushia en bas à gauche elles apparaissent correctement dans Delphi mais avec la couleur fushia pour les zones qui devraient être transparentes (normal puisque je n'ai pas mis le pixel fushia en bas à gauche).

Y a t-il des précautions particulières à prendre pour cette transparence où alors j'ai un problème avec Gimp ?

Si quelqu'un a une idée lumineuse je suis preneur

En attendant, merci beaucoup pour ton aide foxi et comme ta réponse solutionne la question initiale je la mets en réponse acceptée. Cependant si quelqu'un avait une solution ou un indice à mon problème de transparence ce serait sympathique.

Merci et bonne continuation.

Que la force soit avec vous !
0
Rejoignez-nous