C'est simple, on crée le dégradé par une succesion de Me.Line
Ex :
For i = 1 to Me.ScaleHeight
Me.Line (0, i)-(Me.ScaleWidth, i), RGB(255, 255/me.ScaleHeight * i, 0)
Next i
bestmomo
Messages postés132Date d'inscriptionsamedi 25 mai 2002StatutMembreDernière intervention31 août 2007 4 juin 2003 à 21:05
Pourquoi ne pas utiliser les API pour ce genre de process ? Surtout qu'il y a déjà des sources sur VB France qui montrent ça très bien...
Arecibo
Messages postés124Date d'inscriptionjeudi 13 juin 2002StatutMembreDernière intervention30 juillet 2003 31 mai 2003 à 20:42
Merci, j'ai mis la source à jour et maintenant la plupart des dégradés marchent.
Bon c'est vrai qu'il y en a toujours quelques un qui se distinguent mais bon...
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 31 mai 2003 à 19:43
Ton algorithme est très très bien, mais il a un gros défaut : il faut que (par exemple pour Rouge) R1 soit égal à zéro OU R2 soit égal à zéro OU R1 soit égal à R2 ! C'est pour cela que passer d'une valeur non-zéro à une autre valeur non-zéro et différente ne marche pas...
Ton code modifié donnerait plutôt :
If Rchg = False Then
finalR = R1
Else
If R1 > R2 Then
finalR = R1 - (Abs(R1 - R2) / Me.ScaleHeight) * i
Else
finalR = R2 - (Abs(R1 - R2) / Me.ScaleHeight) * i
End If
End If
If Gchg = False Then
finalG = G1
Else
If G1 > G2 Then
finalG = G1 - (Abs(G1 - G2) / Me.ScaleHeight) * i
Else
finalG = G2 - (Abs(G1 - G2) / Me.ScaleHeight) * i
End If
End If
If Bchg = False Then
finalB = B1
Else
If B1 > B2 Then
finalB = B1 - (Abs(B1 - B2) / Me.ScaleHeight) * i
Else
finalB = B2 - (Abs(B1 - B2) / Me.ScaleHeight) * i
End If
End If
En tout cas ça marche chez moi...
7/10
Saros
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 30 mai 2003 à 19:36
Hum, ton problème de couleurs me paraît bizarre !
Sinon, dommage que ton code ne soit pas commenté. De plus, dommage qu'il ne soit pas possible d'orienter le dégradé !
Si tu veux, va voir ma source nommée OBJ_Gestion_Couleur : il s'agit d'une dll de tracé de dégradé justement qui permet de tracé des dégradés de plusieurs couleurs et avec des orientations différentes.
4 juin 2003 à 21:05
31 mai 2003 à 20:42
Bon c'est vrai qu'il y en a toujours quelques un qui se distinguent mais bon...
31 mai 2003 à 19:43
Ton code modifié donnerait plutôt :
If Rchg = False Then
finalR = R1
Else
If R1 > R2 Then
finalR = R1 - (Abs(R1 - R2) / Me.ScaleHeight) * i
Else
finalR = R2 - (Abs(R1 - R2) / Me.ScaleHeight) * i
End If
End If
If Gchg = False Then
finalG = G1
Else
If G1 > G2 Then
finalG = G1 - (Abs(G1 - G2) / Me.ScaleHeight) * i
Else
finalG = G2 - (Abs(G1 - G2) / Me.ScaleHeight) * i
End If
End If
If Bchg = False Then
finalB = B1
Else
If B1 > B2 Then
finalB = B1 - (Abs(B1 - B2) / Me.ScaleHeight) * i
Else
finalB = B2 - (Abs(B1 - B2) / Me.ScaleHeight) * i
End If
End If
En tout cas ça marche chez moi...
7/10
Saros
30 mai 2003 à 19:36
Sinon, dommage que ton code ne soit pas commenté. De plus, dommage qu'il ne soit pas possible d'orienter le dégradé !
Si tu veux, va voir ma source nommée OBJ_Gestion_Couleur : il s'agit d'une dll de tracé de dégradé justement qui permet de tracé des dégradés de plusieurs couleurs et avec des orientations différentes.
DarK Sidious
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.