BACKGROUND TRANSPARENT POUR CHECKBOX, OPTIONBOX (OPTIONBUTTON), PICTUREBOX : AVE

Messages postés
171
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007
- - Dernière réponse : turie
Messages postés
6
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
17 février 2010
- 5 nov. 2006 à 00:52
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/26826-background-transparent-pour-checkbox-optionbox-optionbutton-picturebox-avec-simple-procedure

Afficher la suite 
cs_NoFutur
Messages postés
171
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007
-
10/10 pour moi.

J'ai cherché mais je n'ai jamais trouvé et en plus c'est idéal pour le composant Tabstrip de la version 5.0 associé au manifest.xp pour obtenir enfin une belle transparence sur les Frames sous XP !

Bonne prog !
titnamoureux
Messages postés
5
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
14 octobre 2004
-
Je n'arrive pas le faire fonctionner.. ???
davidauche
Messages postés
150
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
8 janvier 2008
-
salut,
je suis content pour toi NoFutur et merci :).
titnamoureux, comment ça marche pas?!, essaie de télecharger le zip et tester la source (il y a un exemple), en fait t'ajoute une image (picture) au form1 pour l'effet transparence sera plus clair.
tu me tiens au courant si ça marche pas, c'est un peu étonnant quand meme!
a+
Zoneur
Messages postés
6
Date d'inscription
dimanche 31 août 2003
Statut
Membre
Dernière intervention
25 mars 2005
-
Hum, salut bonne source juste un blém l'image du pinguin est touché aussi.
juvamine
Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
2 -
moi qui pensais qu'un programmeur était du genre faignant...ou en tout cas, il cherchait toujours la solution la plus simple...ce n'est visiblement pas ton cas...encore une source que l'on devrait classer dans les catégorie "Pourquoi faire simple quand on peut faire compliquer"
6 API + une librairie VB pour rendre un bg transparent !

MS y'avait déjà pensé, c'est pourquoi il existe la librairie Ms Forms 2.0 Objects Library !! Donc tes 6 API+Library sont remplacer par une seule Library :/ et un .BackStyle à modifier.
Je te l'ai déjà dit tout ça sur le tchate ! mais ceci servira peut-être aux autres qui sait...

5/10 pour le mal que tu t'ai donné

Cordialement
juva
cs_Womby
Messages postés
69
Date d'inscription
jeudi 29 août 2002
Statut
Membre
Dernière intervention
27 avril 2007
-
C'est sur qu'il y a peut etre plus simple. Ceci dit, il a au moins le merite de montrer que c'est possible autrement ;)
Inekman
Messages postés
292
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
30 juin 2006
-
Je trouve ton code excellent Womby. Perso, je programme en Delphi et je n'ai jamais réussi à faire un checkbox standard transparent (1 an que je cherche). Alors j'ai trouvé une composant qui le propose mais en contrepartie ça allourdi mon exe énormément...

J'espère qu'en adaptant ce code en Pascal ça va arracher sa race.

Trop trop merci beaucoup :-P

Inekman.10/10.

ps : l'informatique est loin d'être blanche ou noir. On se doit de découvrir de nouvelles méthodes à chaque fois et ne pas se résigner à un truc qui marche dont on ne connait pas le fonctionnement. C'est mieux de faire une chose de mille façon que de faire mille chose d'une façon. ;-) A bon entendeur...PROGRAMMEZ ! <:o)
juvamine
Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
2 -
moi j'ai appris que la programmation était une réutilisation sans fin de codes existant...c'est comme si tu disais que t'allait refaire le monde a une échelle !=

c'est comme quand quelque fait une classe d'accès aux données...c'est coll tu t'ai bien ennuyé mais ADODB est la pour ca

david tu né biensur pas le 1er dans ce cas mais toi c'est paske on en avait parlé sur #prog !
ricky84
Messages postés
46
Date d'inscription
dimanche 8 septembre 2002
Statut
Membre
Dernière intervention
13 janvier 2014
-
J'aime bien ce code mais est-ce-qu'il est possible de l'adapter aux TextBox ? J'ai essayé en mettant borderstyle à 0 et sans la 3D,mon textbox est bien transparent mais dés que je veux modifier sont texte,il devient illisible !
davidauche
Messages postés
150
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
8 janvier 2008
-
salut, je vous remercie,
franchement juvamine ça m'etonne de ta part!!!, pour moi utiliser un composant existe deja (surtout de MS) ce n'est pas le top. en plus quand t'utilise les composants de MS il faut avoir des licences pour chaque ocx, faut aussi ajouter ces ocx a ton programme et les installer aux postes de l'utilisateur....(alors ce n'est pas complique ça par raport à une procédure très simple a utiliser!? o_O). De plus t'es un programmeur, alors faut que tu trouve les solutions tt seul et pas courir a MS pour avoir les solutions et des fois tu paie en plus!!!. juvamine faut qu'on trouve les solutions et pas se cacher devant les problèmes qui nous rencontre, sinon nous sommes jamais des programmeurs. juvamine, tu verras les histoires des licences quand tu seras à l'echelle professionelle (ADODB pas gratuit mon chef!!!!faut payer :p). Les programmeurs de MS ne sont pas mieux que nous :p alors on peut faire aussi!!.
Inekman je suis tt a fait d'accord avec toi ;-), pour delphi (pascal) je vais essayer de traduire cette source (ça fait moment que je n'ai pas touche pascal, mais je tente ça).
ricky84 j'ai tenté un peu avec les textbox, je rencontre meme problème, je vais essayer d'adapter un peu le code pour ça marche avec les textbox et surtout les listbox aussi ;) :p

Allez amicalement a+
Inekman
Messages postés
292
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
30 juin 2006
-
Merki monsieur pour votre approbation ;-)

Pour le portage Delphi et bien ça marche nickel sauf qu'il faut surcharger la fonction...Si on laisse TObject et bien on accède pas à la propriété "Backcolor" des composants donc marche po :-)

Il faut en faire une version différente pour chaque composant qu'on veut "transparenter"...je sais pas si j'ai été clair mais chez moi ça roule, non sans bug ceci dit :-P
davidauche
Messages postés
150
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
8 janvier 2008
-
lol Inekman, bah je suis content que ça marche aussi en delphi, alors je ne me casse pas ce soir avec pascal ;), tu peux nous mettre la procédure en delphi stp, comme ça elle aide nos amis en Delphi ;).
Merci a+
juvamine
Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
2 -
et bien sache mon ami, que ADODB est gratuit !!!pour utiliser adodb il faut simplement télécharger la MDAC...(freeware sur le site de microsoft)
2eme point je suis au niveau professionnel depuis maintenant 2 années, j'ai appris que lorsque les utilisateurs avait un besoin, j'avais des délais a respecter. entre le fait d'utiliser quelque chose de tout fais et utiliser 6 API je ne met pas longtemps pour choisir !
MS reste le 1er distributeur de Software au monde (SVP je ne veux pas lancer un débat pro-MS) mais les composants qu'ils nous fournissent sont la plupart du temps largement utilisables et j'en profite très largement !

et tout dernier point, je ne suis pas "programmeur" je suis "développeur" Ce terme englobe toute la partie théorique et analytique du métier d'informaticien. On réfléchot, on propose, et on exécute. Je tenais à préciser ce petit point ki n'est cependant pas très important

Cordialement
juva
http://www.webhelp-ig.com/
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13 -
Salut,

juvamine m'a devance pour la gratuite de MDAC...

Quand je vois de la prog a coups d'API dans du VB j'ai un peu tendance a etre de son avis, VB est fait pour utiliser des composants testes et fiables sinon on se met au C et on met vraiment ses mains dans le cambouis.
Exemple immmediat:
GetWindowDC() au debut, ou est le ReleaseDC() ???

Bonne continuation.
juvamine
Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
2 -
Ouf je me sens moins seul ^^
davidauche ya probablement 7 source sur 10 ici qui sont comme ca. T'as pas eut de chance que je critique la tienne, bien que je ne désavoue pas son bon fonctionnement.
VB est censé être un langage "clé en main" même si c'est pas totalement vrai: les applications sont développé plus rapidement en VB qu'en C. C'et d'ailleur pour cela qu'il est assez couremment utilisé dans le milieu professionnel.
Je pense que l'on peu clore le débat. Enfin pour ma part :-)

Bonne chance pour la suite
A bientôt sur #prog,
juvamine
davidauche
Messages postés
150
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
8 janvier 2008
-
ouais mes amis, j'ai mélange Ado avec les interfaces graphiques que nous propose MS pour la manipulation des bases de donnees.

BruNews, on est pas obliger d'utiliser ReleaseDC() c'est les composants qu'on utilise ont deja un hDc ;).

juvamine, j'aime etre un programmeur et pas un développeur (d'apres ton raisonnement) :p.

a+
davidauche@icqmail.com
juvamine
Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
2 -
alors dit pas que je suis un programmeur...je ne me réduis pas au statut de pisseur de ligne qui est pour ma part le moment le moins palpitant d'un informaticien.
Ca reste un avis perso :-)

Cordialement
juva
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13 -
Toute fenetre suppode un hdc pour la dessiner mais GetWindowDC() cree un handle qu'il faut liberer par ReleaseDC().
C'est pas une question mais une information.
davidauche
Messages postés
150
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
8 janvier 2008
-
lol juvamine :-) ;-)

ah bon BruNews!, et si je met pas ReleaseDC() ça change en quoi? et qu'elles sont les problèmes qui peuvent se poser après? (je demande l'information, merci d'avance).
Sinon, pourquoi t'as oublié d'utiliser ReleaseDC() dans ta source : http://www.cppfrance.com/code.aspx?ID=11139 ;-).
Cordialement
a+
davidauche
Messages postés
150
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
8 janvier 2008
-
ahh non! pardon BruNews, lol je n'ai pas remarqué ReleaseDC () à la fin du code , sorry ;)
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13 -
ben faudra mieux lire ma source, c'est juste la derniere ligne (mais bon personne n'est a l'abris d'une erreur j'en conviens aisement).
Windows maintient une table de handles sur 16 bits de longueur, si donc une fonction qui ne les ferme pas est appelee tres souvent (raffraichissement d'images ou truc de ce genre) on va tres vite arriver avec un retour 0 sur la fonction et la ce sera la cata. Quand on appelle ReleaseDC() Windows marque la place libre pour un prochain appel.
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13 -
ah on s'est croise dans nos reponses.
davidauche
Messages postés
150
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
8 janvier 2008
-
ahh c'est bon j'ai lu msdn :
After painting is complete, the ReleaseDC function must be called to release the device context. Not releasing the window device context has serious effects on painting requested by applications.
merci BruNews pour cette remarque, en vb souvent on fait pas ReleaseDC mais je ne repete plus, peut etre car vb lebère automatiquement la mémoire, pas comme en c et c++ ;-).
Amicalement a+
davidauche
Messages postés
150
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
8 janvier 2008
-
ah on s'est croise dans nos reponses 2ème fois.
je vous remercie une autre fois pour tes informations.
a+
cs_olid
Messages postés
296
Date d'inscription
lundi 2 septembre 2002
Statut
Membre
Dernière intervention
28 janvier 2008
-
Une question pour un probleme un peu similaire :

J'ai créé un control utilisateur qui contient "juste" un control Label. Jarrive pô à rendre mon controle avec fond transparent... Si le style du controle utilisateur ET du Label sont transparent, le texte du Label n'apparait pu :o(((

Autre probleme avec ce controle, si j'appel ma propriété d'etiquette de survol "ToolTipText" (le nom classique standard) qui renvoit sa valeur vers la propriété du meme nom sur le Label... Bin çà marche pô ; lors de l'affectation, la propriété (du controle utilisateur) reste vide... meme en faisant un Debug ou un Msgbox sur le parametre vdata fourni à la propriété, il est vide :o. !!!!
davidauche
Messages postés
150
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
8 janvier 2008
-
olid, pour ton 1er problème tu peux commencer a regarder cette source que j'ai cree dernierement, gère du texte transparent dans un control utilisateur, aussi avec des angles de rotation aux choix, l'effet 3d et l'effet contour d'un text...: http://www.vbfrance.com/code.aspx?ID=26755
Mais avec un label dans un control utilisateur, normalement c'est faisable aussi et plus simple, je regarde ça ce soir.

Pour ToolTipText, j'ai aucune idee pour l'instant, mais je vais tenter ça aussi
a+
cs_olid
Messages postés
296
Date d'inscription
lundi 2 septembre 2002
Statut
Membre
Dernière intervention
28 janvier 2008
-
Pour le pb du ToolTipText, voilà mon bout de source qui marche sauf si je renomme la propriété "ToolTipText":

Public Property Get OverTipText() As String
OverTipText = strOverTipText
End Property

Public Property Let OverTipText(ByVal New_ToolTipText As String)
strOverTipText = New_ToolTipText
Label.ToolTipText = New_ToolTipText
PropertyChanged "OverTipText"
End Property


Le bug, c'est le parametre "New_ToolTipText" qui est vide... Alors que l'affectation au Label, et la lecture/ecriture du propertybag fonctionnent :o|
davidauche
Messages postés
150
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
8 janvier 2008
-
pour ToolTipText, exactement qu'il faut le faire, car tooltiptext c'est une propriete réserver pour l'usercontrol et pas pour les controls qui se trouve dans ce usercontrol. Alors faut ajouter une autre propriete tooltiptext pour ton label. Voici un code marche bien tu l'ajoute a ton usercontrol ;-).

Public Property Get ToolTipTextLbl() As String: ToolTipTextLbl = Label1.ToolTipText: End Property

Public Property Let ToolTipTextLbl(ByVal New_ToolTipTextLbl As String)
Label1.ToolTipText() = New_ToolTipTextLbl
PropertyChanged "ToolTipTextLbl"
End Property

'Charger les valeurs des propriétés à partir du stockage
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
Label1.ToolTipText = PropBag.ReadProperty("ToolTipTextLbl", "")
End Sub

'Écrire les valeurs des propriétés dans le stockage
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("ToolTipTextLbl", Label1.ToolTipText, "")
End Sub
'fin
'Pour tester si l'affectation marche bien en mode execution :
Private Sub Command1_Click()
UserControl11.ToolTipTextLbl = "Blabla"
Label2.Caption = UserControl11.ToolTipTextLbl & "Blabla2"
End Sub

pour l'histoire du label transparent dans un usercontrol transparent c'est impossible je crois, alors essaie ma source qui résoudre ton problème ;).
a++
cs_olid
Messages postés
296
Date d'inscription
lundi 2 septembre 2002
Statut
Membre
Dernière intervention
28 janvier 2008
-
Ah les cochons de kro$oft :o|

Si tu regarde bien mon bout de source, jai fais exactement ce que tu dit. mais moi j'ai choisi le nom "OverTipText" pour pas etre en conflit. Merci qd meme ;op

Arf...pour la transparence, va falloir refaire tout mon source :o(

Fodrait que je soumette mon controle qd jaurais le temps ; il simule un lien hypertexte entiérement parametrable via l'IDE de VB :o)
davidauche
Messages postés
150
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
8 janvier 2008
-
bah super que ça marche en fin!, pour la transparente si tu trouve la solution avec un label et control utilisateur, je suis preneur ;).
a+
cs_olid
Messages postés
296
Date d'inscription
lundi 2 septembre 2002
Statut
Membre
Dernière intervention
28 janvier 2008
-
Bin, pour la transparence, la soluce la plus simple pour moà est de créer un control qui reproduit un label et/ou de réutiliser le tien :o|
Alucardkuun
Messages postés
1
Date d'inscription
lundi 18 juillet 2005
Statut
Membre
Dernière intervention
16 septembre 2005
-
oui mais comment est-ce que je peut mettre le script que quand le programe s'ouvre qu'il le fasse automatiquement?

merci
//Naruto
cs_surfman
Messages postés
47
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
16 septembre 2008
-
comment on fait pour que les checkbox soit transparent au démarrage de mon logiciel ? sans à avoir à crée un bouton :s
turie
Messages postés
6
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
17 février 2010
-
Très bon code, je le cherchai depuis un moment.