Icône associé à un composant dans la palette d'outils [Résolu]

informatixo 133 Messages postés mercredi 4 février 2004Date d'inscription 25 juillet 2012 Dernière intervention - 20 nov. 2008 à 11:33 - Dernière réponse : informatixo 133 Messages postés mercredi 4 février 2004Date d'inscription 25 juillet 2012 Dernière intervention
- 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 !
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 20 nov. 2008 à 21:51
3
Merci
tu peux utiliser des images 24x24 en BMP 24bits

Merci f0xi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de f0xi
informatixo 133 Messages postés mercredi 4 février 2004Date d'inscription 25 juillet 2012 Dernière intervention - 21 nov. 2008 à 14:35
0
Merci
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 !
Commenter la réponse de informatixo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.