Objet : gestion de couleur 1.0 : dll qui crée un dégradé de couleur

Soyez le premier à donner votre avis sur cette source.

Vue 4 250 fois - Téléchargée 649 fois

Description

Cette source est une dll qui vous permet de tracer un dégradé assez complexe en lui passant en paramètres : Les coordonnées du tracé, les couleurs à appliquer, le pas du tracé (même si celui-ci occasionne des bugs d'affichages), la région dans laquelle il faut tracer le dégradé.

Sinon, les types de dégradés possibles sont :

Dégradés du haut vers le bas
Dégradés de la gauche vers la droite
Dégradés en diagonale du coin supérieur gauche vers coin inférieur droit
Dégradés en diagonale du coin inférieur gauche vers coin supérieur droit
Dégradé du centre de l'affichage vers l'extéreieur de l'affichage

Voilà pour les fonctions de dégradés. Mais cette source vous permet également de récupérer les composantes Rouge, Vert, Bleue d'une couleur passée au format Long, de récupèrer les composantes de Luminosité, Constraste et Chrominance d'une couleur, et également de récupérer la couleur au format Long d'une couleur OLE.

S'il vous plait, n'hésitez pas à me laissez vos commentaires pour faire progresser la source, et n'oubliez pas la p'tite note ;-)

Source / Exemple :


'Le code étant trop long, il vaut mieux aller voir le zip
'Regardez la capture également !!!

Conclusion :


Cette source est mis à jour depuis le 10/01/2004. En nouveauté : La classe est devenue un objet avec des propriétés pour plus de facilité d'utilisation.

Il existe un bug connu : lorsque vous changez le step du tracé.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_bidouille007
Messages postés
263
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
1 -
bonjour Maitre

Ton code est il adaptable au VB2008 ?

Que la force soit avec vous
PCPT
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
26 -
salut
euh... bah c'est quoi alors, la différence entre le module de classe et le UserControl?
juste l'interface (objet)? si j'ai bien lu à droite à gauche, le usercontrol créé par exemple le txtbox. et le txtbox est une instance de txtbox. et l'instance est un module de classe.
houlaaa!!!!!

sinon je ne note pas ta source, trop complexe et complète, mais elle est nikel et très bien commentée. tu peux me dire l'avantage du usercontrol par rapport au module de classe? au final, on peut faire un ocx et une dll (respectivemement), mais pourquoi choisir l'un plus que l'autre (si pas d'objet à créer par exemple)

merci ;)
PCPT
cs_DARKSIDIOUS
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
82 -
Ben le plus simple, c'est d'intégrer le module de classe directement dans ton projet Exe standard, ainsi, tu pourras créer une instances facilement dans ton projet.

Ensuite, pour tracer le dégradé, il te faut définir :
* Le DC dans lequel il faut tracer (Picture1.hDC par exemple)
* La position sur le DC où tracer le dégradé (il faut mentionner les propriétés Top, Left, Width et Height pour définir les coordonnées d'un rectangle dans lequel sera tracé le dégradé)
* Le nombre de couleurs et les couleurs elles-mêmes
* Enfin, le type de dégradé (voir l'énumération correspondante à la propriété TypeGradient par l'explorateur d'objets de VB).

Une fois toutes ces propriétés définies, tu peux tracer le dégradé en appelant la fonction GradientTrace (la propriété DefaultColor et Step ne sont pas obligatoires).

Par contre, pour tracer un dégradé non rectangulaire, c'est moins évident : il faut créer une région, et l'appliquer à la classe, mais là, c'est plus compliqué !

DarK Sidious
cs_alixdj
Messages postés
9
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
19 août 2005
-
Il m'est arrivé d'utiliser des classes, mais elles n'avaient jamais d'existence propre sur le formulaire (création d'une classe d'utilisateur par exemple pour les droits d'accès).
Je comprends ton exemple d'instanciation, mais pas comment je dessine sur le formulaire une forme avec une couleur dégradée.
En outre, je ne peux pas démarrer sur une form, pour cela je dois changer le type du projet en exe standard au lieu de DLL activeX.
Je suis, comme tu peux t'en rendre compte, totalement ignorante en la matière.
Si tu as le temps ou la patience de me donner un peu plus d'infos, j'apprécierais beaucoup.
cs_DARKSIDIOUS
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
82 -
Et bien voici un exemple concret d'utilisation :

'création d'une instance de la classe :
Dim OBJ_Objet As New CLS_GESTION_COULEUR

'définition de la coordonnée sur Y :
OBJ_Objet.Top = 10

'définition de la coordonnée sur X :
OBJ_Objet.Left = 10

'définition de la hauteur du dégradé (en pixels !) :
OBJ_Objet.Height = 200

'définition de la largeur du dégardé (en pixels !) :
OBJ_Objet.Width = 200

'Nombre de couleur à appliquer au dégradé :
OBJ_Objet.ColorNumber = 3

'Définition des 3 couleurs du dégradé :
OBJ_Objet.Color(0) = vbRed
OBJ_Objet.Color(1) = vbGreen
OBJ_Objet.Color(2) = vbBlue

'Définition du DC dans lequel tracer le dégradé (ici, la feuille, mais ca peut être un PictureBox par exemple) :
OBJ_Objet.hDC = Me.hDC

'Couleur par défaut (appliquée si on ne spécifie pas toutes les couleurs :
OBJ_Objet.DefaultColor = vbBlack

'Pas du tracé du dégradé :
OBJ_Objet.Step = 1

'type de dégradé à tracer :
OBJ_Objet.TypeGradient = GradientExternToCenter

'enfin, on peut tracer le dégradé, ouf !
OBJ_Objet.GradientTrace

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.