Transition de couleur [Résolu]

Signaler
Messages postés
21
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
20 janvier 2009
-
Messages postés
21
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
20 janvier 2009
-
Bonjour,

Je "travaille" en ce moment sur un petit programme pour afficher une ambiance lumineuse en utilisant mon écran comme source lumineuse.
2 effets sont prévus pour le moment chenillard et fondu entre 2 couleurs.

Les couleurs sont pour le moment sélectionnées par le controle de choix de couleur.

Je cherche un moyen d'afficher une couleur de fond d'un formulaire (ou de tout autre controle) variante entre 2 couleurs.
Le changement de couleur serait géré par un timer.
La variation de couleur consisterait à faire varier linéairement les valeurs RGB des 2 couleurs.

Ce que je n'arrive pas à faire c'est de donner une couleur RGB à un controle.

Merci de votre aide.

9 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Salut,

TonControl.BackColor = RGB(rouge, vert, bleu)

__________
  Kenji
Messages postés
21
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
20 janvier 2009

Merci de ta réponse Charles,

Cela fonctionne bien en VB6 mais en VB2005 j'ai l'erreur suivante:

Une valeur de type 'Integer' ne peut pas être convertie en 'System.Drawing.Color'
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Ha, en .net (pardon) c'est System.Drawing.Color.FromARGB(rouge, vert, bleu)
http://msdn2.microsoft.com/en-us/library/system.drawing.color.fromargb.aspx

__________
  Kenji
Messages postés
21
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
20 janvier 2009

Exploreur,

j'ai esayé de convertir rgb() en long mais j'obtiens le message d'erreur :

Une valeur de type 'Long' ne peut pas être convertie en 'System.Drawing.Color'

Charles,

Je vais essayé quand j'aurais un peu de temps

En tout cas merci de votre aide
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Salut,

Plutôt que de faire des calcules "foireux" (désolé pour le mot), utilise :
ColorDialog1.Color.R
ColorDialog1.Color.G
ColorDialog1.Color.B

__________
  Kenji
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
Salut,

Il me semble(je crois ) que les couleurs sont définies en Long..

A+
Exploreur

 Linux a un noyau, Windows un pépin

Un jeu en flash sympa...? Voir ici
Si vous voulez vous inscrire
mettez comme parrain : exploreur
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
Re,

Ne valide pas ma réponse si j'ai dit une co......ie !

A+
Exploreur

 Linux a un noyau, Windows un pépin

Un jeu en flash sympa...? Voir ici
Si vous voulez vous inscrire
mettez comme parrain : exploreur
Messages postés
21
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
20 janvier 2009

Charles,

J'ai testé "System.Drawing.Color.FromARGB" et ça fonctionne.

Tout le monde,

Je n'arrive pas à convertir une couleur au format AARRGGBB en RR,GG,BB

ma source:

Dim iRGB
As Int64

Dim iRouge
As
Integer

Dim iVert
As
Integer

Dim iBleu
As
Integer

Dim iTemp
As UInt32ColorDialog1.ShowDialog()

sender.BackColor = ColorDialog1.Color

iRGB = ColorDialog1.Color.ToArgb

iTemp = iRGB

iRouge = iTemp

Mod 256iTemp = iTemp / 2 ^ 8

iVert = iTemp

Mod 256iTemp = iTemp / 2 ^ 8

iBleu = iTemp

Mod 256

Me.BackColor = System.Drawing.Color.FromArgb(iRouge, iVert, iBleu)

mais lorsque j'execute iRGB = ColorDialog1.Color.ToArgb

iRGB est négatif et la dernière instructiion plante car les couleurs ne peuvent pas être négatives
Messages postés
21
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
20 janvier 2009

Charles,

merci de ton aide, je vais pouvoir avanver dans mon projet