zwyx
Messages postés146Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention21 mars 2016
-
15 oct. 2009 à 17:58
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 2016
-
16 oct. 2009 à 22:22
Bonjour à tous,
Je souhaite créer un BitBtn, pendant l'exécution du programme et lui affecter une image dont je connais déjà la valeur hexadécimale, récupérée du fichier *.dfm.
Dans un fichier *.dfm, on trouve une description comme suit:
Seulement quand je crée le bouton dynamiquement, dans une fonction de mon *.pas, je ne peux assigner le glyphe sous cette forme, puisque les accolades constituent un commentaire.
Voilà, c'est tout bête, mais je suis bloqué par un commentaire.
zwyx
Messages postés146Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention21 mars 2016 16 oct. 2009 à 17:58
Comme tu dis, passer par un tableau d'octets devient vraiment compliqué pour pas grand chose.
J'ai donc choisis d'ajouter à ma fiche un BtnModele: TBitBtn, non visible, avec en guise de glyphe, l'image qui m'intéresse, ainsi codé en bitmap.
Au moment de créer un BitBtn dynamiquement, j'écris simplement:
BtnNouveauBouton.Glyph := BtnModele.Glyph;
(tiens, je me suis étonné de ne pas avoir l'auto-complétion de ".Glyph" pendant la rédaction de ce message)
Mon problème, qui n'en étais pas vraiment un, est donc résolu par une solution, qui n'en est pas vraiment une. Merci d'avoir orienté mes recherches Bacterius.
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 16 oct. 2009 à 09:35
Pourquoi ne pas convertir le glyphe en image depuis l'héxadécimal ? Par contre, pour savoir quelle est la hauteur/largeur du glyphe, faudra se renseigner sur le format des DFM ...
zwyx
Messages postés146Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention21 mars 2016 16 oct. 2009 à 10:55
Merci pour ta réponse Bacterius,
Je ne comprends pas trop ce que tu entends par "convertir le glyphe en image". Tout ce que je sais, c'est que l'image n'est pas codé dans le *.dfm, puisque le bouton est exclusivement construit dynamiquement, et que j'aimerais me passer d'un fichier de ressource ou image à côté de mon unité *.pas.
Donc en gros, je voudrais faire tenir l'image en dur dans mon *.pas.
Seulement la Picture est une image jpg, tandis que le Glyph est un bitmap. Les seuls méthode de conversion que je trouve propose d'ouvrir un fichier *.jpg pour l'exporter en *.bmp.
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 16 oct. 2009 à 12:59
Ce que tu peux faire, c'est stocker dans un "const" ton image, sous forme de "array of byte". Mais pourquoi ne pas passer par un fichier de ressources ? C'est optimisé, facile à utiliser ...
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 16 oct. 2009 à 22:22
Mais .. euh ... c'est pas bon de faire comme ça !!
Utilise une TImageList, au moins c'est fait pour ça, si tu veux éviter les fichiers ressource (pourquoi d'ailleurs ?? c'est encore mieux les fichiers ressources)