OBJET : GESTION DE COULEUR 1.0 : DLL QUI CRÉE UN DÉGRADÉ DE COULEUR

Vbsupernul Messages postés 287 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 18 janvier 2004 - 18 déc. 2002 à 19:32
cs_bidouille007 Messages postés 257 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 22 décembre 2012 - 5 sept. 2009 à 13:38
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/5370-objet-gestion-de-couleur-1-0-dll-qui-cree-un-degrade-de-couleur

cs_bidouille007 Messages postés 257 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 22 décembre 2012 1
5 sept. 2009 à 13:38
bonjour Maitre

Ton code est il adaptable au VB2008 ?

Que la force soit avec vous
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
28 juin 2005 à 04:21
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 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
23 avril 2005 à 15:11
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
23 avril 2005 à 14:50
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 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
22 avril 2005 à 06:56
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
cs_alixdj Messages postés 9 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 19 août 2005
21 avril 2005 à 23:14
Désolé, je débute, je ne sais pas comment faire pour me servir de ta classe.
Et voir l'exe ne m'aide pas.
Peux-tu m'expliquer ?
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 janv. 2004 à 09:31
La source est mise à jour : version 2.0.0.

Dorénavant, il s'agit d'un véritable objet avec des propriétés et des fonctions. Il y a également la possibilité de tracer un dégradé dans une région envoyée à l'objet.

Il y a un programme de test pour vous montrer comment cette nouvelle version marche.

DarK Sidious
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 déc. 2002 à 07:27
C'est bon, ca remarche !!!!
Enfin, merci beaucoup Nix !

DARK SIDIOUS
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 déc. 2002 à 07:20
Merci Womby.

Oui, mais il n'y a pas que cette source qui ne marche pas : TOUTES mes sources contenant un fichier .vbp contiennent un erreur ;-(((

Je pense que ca doit être le cas pour beaucoup de monde, mais rassurez vos, Nix est en train de bosser sur ce problème, donc, wait and see.

Sinon, j'ai inclue un executable dans le zip, commeca vous pouvez quand même tester... mais il faut que la dll soit enregistrée dans le registre.

DARK SIDIOUS
cs_Womby Messages postés 69 Date d'inscription jeudi 29 août 2002 Statut Membre Dernière intervention 27 avril 2007
20 déc. 2002 à 17:59
Bah depuis peu des que ton zip est t'envoyé sur le site deux fichier ce rajoute un texte et une Url j'ose donc supposer que cette manipulation doit creer des erreurs dans les fichiers :)

Sinon le resultat est frappant c'est tres bien comme code Superbe :)
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 déc. 2002 à 22:10
Ca y'est, je vois pourquoi il y a un problème. Pour y remédier, il suffit d'éditer le fichier .vbp est d'éffacer les deux références créer comme le dit VicoLaChips2 en haut, c'est tout de même pas normal puisque ca marche très bien avec le zip d'origine.

DARK SIDIOUS
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 déc. 2002 à 21:18
En effet, il y a un file corrupt lors de la décompression du zip, mais il arrive quand même à le décompresser... bizarre.

DARK SIDIOUS
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 déc. 2002 à 21:07
OulaOula, merci de me dire ca, car je me suis planté de fichier...

Excusez moi : normalement, il ne devait y avoir que la dll de dégradé, avec un exe de démo. Je change le zip tout de suite. DSL

DARK SIDIOUS
VicoLaChips2 Messages postés 436 Date d'inscription dimanche 20 janvier 2002 Statut Membre Dernière intervention 2 février 2010 2
18 déc. 2002 à 20:54
Salut -;)
Bravo pour la dll de dégradés c'est vraiment bien foutu !
Pour la gestion des fichiers en revanche, je vois pas trop l'intérêt, d'autant plus que il y a une dépendance avec Scripting.FileSystemObject(scrrun.dll).

J'ai du pour ma part ouvrir les fichiers *.VPB avec un éditeur de texte et supprimer la ligne :
ExeName32="--------------"
pour pouvoir l'ouvrir avec VB. Autrement un message d'erreur dit que le fichier est endommagé.

@+, VIC
Vbsupernul Messages postés 287 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 18 janvier 2004
18 déc. 2002 à 20:51
ben j'arrive pas à ouvrir "the file is corrupt, and can't be open"
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 déc. 2002 à 19:46
Ca y'est, la capture devrait être bonne maintenant.

S'il vous plaît, laissez vos commentaires, et notez cette source.

DARK SIDIOUS
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 déc. 2002 à 19:38
Je sais je sais, le zip y est maintenant, mais la capture, impossible de la faire parvenir, un nouveau bug ???

DARK SIDIOUS
Vbsupernul Messages postés 287 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 18 janvier 2004
18 déc. 2002 à 19:33
idem pour la caputre ;)
Vbsupernul Messages postés 287 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 18 janvier 2004
18 déc. 2002 à 19:32
ZZZZZZIIIIIIIIIIIIIIIIIIIIIIIIPPPPPPPPPPPPPPPPPPPPPP!!!
petit petit, où est tu???
Rejoignez-nous