COMPOSANT "BOUTON/IMAGE" TIMGBTN

Messages postés
69
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 novembre 2006
- - Dernière réponse : cs_flagada
Messages postés
63
Date d'inscription
jeudi 8 mai 2003
Statut
Membre
Dernière intervention
18 février 2011
- 26 déc. 2009 à 22:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23367-composant-bouton-image-timgbtn

cs_flagada
Messages postés
63
Date d'inscription
jeudi 8 mai 2003
Statut
Membre
Dernière intervention
18 février 2011
-
J'ai l'impression qu'il se passe des trucs pas nets avec la transparence.
Déjà si je ne m'abuse la couleur de la transparence n'est pas prise en compte :
Si la transparence est activée c'est la couleur du pixel en haut à gauche de l'image qui est utilisée.
Je pense qu'il faudrait rajouter une ligne du style "TempImg.TransparentMode:=tmFixed;" non?

De plus si l'on essaye de changer la couleur de transparence on ne peut pas le faire, la valeur revient toujours à clFushia??
Spatul
Messages postés
12
Date d'inscription
mercredi 21 août 2002
Statut
Membre
Dernière intervention
9 octobre 2008
-
A prioris, le bug venait du fait que j'utilise une variable pour connaitre l'état visuel du bouton ("ImgValeur"). Cette variable est maintenant déclaré dans le "private" du composant, elle n'affecte donc plus les autres composant lors d'un appel au "MouseDown" pour afficher une autre fenetre en modal.
Merci de me tenir informé.
Spatul
Messages postés
12
Date d'inscription
mercredi 21 août 2002
Statut
Membre
Dernière intervention
9 octobre 2008
-
Je vais vérifier cela et essayer de trouver la correction. Merci
JulioDelphi
Messages postés
2349
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
12 -
4 mois et 2 ans après, je découvre un bug sur ce composant =)
Pour le provoquer c'est facile :
Form1 ouvre Form2 en modal :

begin
Form2.ShowModal;
end;

Ma Form2 contient des (excellents) TImgBtn. Malheureusement, ils sont en positions 'enfoncés'. Si je passe ma souris dessus, l'effet 'dessus' n'apparait pas. Si je clic, l'effet 'enfoncé' apprait lui par contre. Pour relever le bouton (position 'normale') je doit cliquer, maintenir enfoncé, déplacer ma souris hors du bouton. Là, la position 'normale' du bouton apparait. mais une fois de plus si je passe ma souris dessus, l'effet 'dessus' n'apparait toujours pas.

J'ai refait idem avec Form2.Show; et ça passe niquel.

Je récapitule : Les TImgBtn qui sont dans une form en showmodal n'ont pas un comportement visuel correct.
Voila !
JulioDelphi
Messages postés
2349
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
12 -
9/ 10 bravo !
-1 pour le png pas géré lol
:D a+
Spatul
Messages postés
12
Date d'inscription
mercredi 21 août 2002
Statut
Membre
Dernière intervention
9 octobre 2008
-
Heureux que ça serve à d'autres personnes que moi...
Je vais essayer de modifier le source pour utiliser les images PNG (pour avoir la transparence complette)...Mais il y a du boulot !
SiZiOUS
Messages postés
69
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 novembre 2006
-
Cool! Depuis le temps que je cherchais un bouton comme celui la!
Vu que je ne sais pas faire des composants...