APPAREA BUTTON XP OCX (VE2.0)

bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 - 15 nov. 2005 à 08:51
copyrightx Messages postés 59 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 14 janvier 2016 - 24 mars 2006 à 16:07
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/34631-apparea-button-xp-ocx-ve2-0

copyrightx Messages postés 59 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 14 janvier 2016
24 mars 2006 à 16:07
Il est prévu plein de modifications pour la version "Pack_Xp" : transparence de l'image du bouton, possibilité d'écrire sur plusieurs lignes, meilleur gestion des événements et du resize du bouton mais aussi d'autres fonctions pour la transparence d'une couleur de l'image (le MaskColor), fading amélioré, et bien d'autres ...

Pour plus d'infos concernant la version Pack_Xp et 2.0, rendez-vous sur www.apparea-ocx.fr.fm ...

Bonne prog à vous tous !
kerriencpp Messages postés 3 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 29 mars 2006
24 mars 2006 à 15:05
Dommage que l'on ne puisse pas appliquer un Maskcolor sur l'image associé au boutton. Sinon l'ocx est excellent, je vais l'utiliser dans les applis!
copyrightx Messages postés 59 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 14 janvier 2016
23 nov. 2005 à 09:56
Merci pour les commentaires : si j'ai besoin d'aide, je t'écris.
Maintenant je me lance dans les modifs ...

Copyrightx
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 nov. 2005 à 15:33
Tes question 2 et 3 sont regroupées en une seule : en mettant les propriété commune (exemple les couleurs) dans la même classe, cela te permet d'avoir moins de propriétés, un ordonnancement plus logique de celles-ci, et surtout, la possibilité de copier plusieurs propriétés en même temps. Surtout que c'est très simple à faire :
Tu déclare tes variables en private dans ton module de classe, puis tu fait les propriétés Get/Let toujours dans ton module de classe, et enfin, tu fait une propriété Get/Set dans ton usercontrol pour accèder à une instance de ta classe.

7, 9, 10 : voir le menu outils/Attributs de procédures.

12 : il ne se redimensionne pas (l'image du bouton) en mode création alors !

DarK Sidious
copyrightx Messages postés 59 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 14 janvier 2016
21 nov. 2005 à 13:59
1/ J'ai besoin de conseils, il y a du boulot ?
2/ J'aimerais avoir un exemple d'utilisation d'un module de classe avec les propriétés ForeColorOut, ForeColorDown, ?
3/ Qu'entend-tu par « regrouper toutes les couleurs dans un seul objet ! »
4/ Je pense que je vais regrouper toutes mes sources dernièrement postées en un seul contrôle, ce sera mieux pour tout le monde ?
5/ Plus de Message Box, c'est promis !
6/ Je vais regrouper les fonctions DrawFocus, DrawDown, ?
7/ De quelle façon peut-on ajouter des descriptions dans les propriétés du contrôle ?
8/ De même comment peut-on lier le contrôle à une page de propriété (j'aimerais un exemple de base avec une propriété si possible) ?
9/ Comment définir une propriété par défaut ? (ex : la caption)
10/ Qu'entend-tu par « Aucune propriété rattaché à un ID standard de VB » ? Et de quelle façon ceci est-il possible ?
11/ Plus de feuille form PP1 : j'y est déjà pensé plusieurs fois ?
12/ Le contrôle Button_xp se redimensionne ! Heureusement car sinon je ne vois pas l'utilitée de créer un contrôle sans pouvoir le redimensionner et comme tu dis : « surtout pour un bouton », re-test the control ?
13/ PS : C'est le genre de commentaire que j'adore : c'est grâce à ça qu'on évolue dans la prog, encore merci !

Copyrightx
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 nov. 2005 à 19:50
Pas mal de remarques (qui j'espère te fera comprendre certains concepts clés de la programmation d'ocx) :
1/ Ca ne sert à rien de poster une version 1, puis une version 2 sur le site, mets à jour la version 1 directement, avec une compatibilité binaire. Pourquoi ? Tout simplement parce que ca va à l'encontre de la logique de compatibilité des ocx : tu compile un ocx, tu l'utilise dans ton projet, et vient une version 2 qui écrase l'ancienne version (compilé sans compatibilité, comme le veux les options de ton projet), et du coup, ca fait planter tout ton prog !
2/ Quand je vois autant de propriété, autant de variable, j'ai qu'une envie : ne pas utiliser ton ocx ! Il faudrait réorganiser tout ca en classe, avec une conception objet, on y gagne en facilité d'utilisation, mais aussi en facilité de programmation ! Quand je vois :
PropBag.WriteProperty "ColorOutStart", OutS: PropBag.WriteProperty "ColorOverStart", OverS
PropBag.WriteProperty "ColorDownStart", DownS: PropBag.WriteProperty "ColorUpStart", UpS
PropBag.WriteProperty "ColorFocusStart", FocusS: PropBag.WriteProperty "ColorEnabledStart", EnabledS
PropBag.WriteProperty "ColorOutEnd", OutE: PropBag.WriteProperty "ColorOverEnd", OverE
PropBag.WriteProperty "ColorDownEnd", DownE: PropBag.WriteProperty "ColorUpEnd", UpE
PropBag.WriteProperty "ColorFocusEnd", FocusE: PropBag.WriteProperty "ColorEnabledEnd", EnabledE
PropBag.WriteProperty "ForeColorOut", ForeOut: PropBag.WriteProperty "ForeColorOver", ForeOver
PropBag.WriteProperty "ForeColorDown", ForeDown: PropBag.WriteProperty "ForeColorUp", ForeUp
PropBag.WriteProperty "ForeColorFocus", ForeFocus: PropBag.WriteProperty "ForeColorEnabled", ForeEnabled
il vaudrait mieux regrouper toutes les couleurs dans un seul objet !
3/ Grosse erreur : mettre un message box dans une propriété ! Il ne faut JAMAIS faire cà : imagine, un utilisateur utilise ton contrôle, le mets dans un programme qu'il compile sans trop le tester, le revend, et là, l'utilisateur tombe sur un message :
"Entrez un nombre positif et différent de 0 pour la vitesse du Fading. Plus le nombre est grand, plus il y a de couleurs affichées sur la caption et plus la vitesse est lente.", que veux-tu que l'utilisateur y comprenne ?
Il vaut mieux ne pas mettre de message du tout ! ou à la rigueur mettre ce message dans la description de la propriété et non comme messagebox !
4/ Tes fonctions DrawFocus, DrawDown, etc. sont incompréhensible et très difficile à maintenir, tu aurais mieux fait de faire une seule fonction Draw avec quelques paramètres qui simule tes fonctions DrawFocus, DrawDown, etc. ! Ainsi, en cas de bug, tu n'as plus qu'à changer dans une seule fonction et non dans 4 avec tout les soucis que cela peut engendrer !
5/ Pas de description pour les propriétés. Lorsqu'un contrôle possède autant de propriétés, ca devient très difficile de comprendre quelle propriété fait quoi !
6/ Pas de pages de propriétés, ce qui aurait été bien pratique pour justement regrouper les propriétés entre elles !
7/ Pas de propriété par défaut (exemple : la propriété caption aurait très bien pu être définie comme propriété par défaut, ca aurait été bien pratique pour l'utilisateur).
8/ Aucune propriété rattaché à un ID standard de VB, ce qui est quand même bien pratique !
9/ A quoi sert ta feuille dans ton projet du contrôle ??? Ca ne fait qu'alourdir le contrôle, il aurait plutôt fallu faire un groupe de projet avec un projet de test et le projet du contrôle !
10/ Ton contrôle ne se redimensionne pas : c'est quand même bien pratique (surtout pour un bouton) de donner la taille qu'on veut à un contrôle !

Bon je m'arrête là sinon j'y passerai des heures.

Tout ca pour te montrer que ton code est encore largement perfectible, et surtout, que tu n'utilise pas tout les avantages des ocx, ce qui est bien dommage car ca rend ton contrôle très difficile à utiliser (ou du moins, beaucoup moins facile à utiliser que les contrôles standard).

DarK Sidious
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
17 nov. 2005 à 15:25
salut Copyrightx, salut a tous,

le probleme, je pense que c'est ca:
APPAREA TEXTBOX XP OCX (VE2.0)
APPAREA PICTURE XP OCX (VE2.0)
APPAREA INFO XP OCX (VE2.0)
APPAREA FRAME XP OCX
APPAREA INFO XP OCX

Pourquoi t'obstines tu a faire des sources separees ?
fais en un seul composant chaque et fois que tu rajoute un objet tu mets ta source a jour!

Sinon ils ont l'air bien tes boutons :)
Fais un seul ocx avec le tout, et tu aura surement de meilleurs notes ;)

PS: pour les captures d'ecran, utilise plutot un fond "unis" que une image, ca permet de mieux voir le rendu des boutons ;)

Bonne prog a tous

++
copyrightx Messages postés 59 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 14 janvier 2016
17 nov. 2005 à 09:55
Hey ! Qu'est-ce qu'il ne vous plaît pas dans la source ? Remontez-moi cette note !!!!!

Copyrightx
EPS32HAY Messages postés 100 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 1 février 2009
17 nov. 2005 à 08:35
Salut Copyrightx

Moi je le prend je crois bien que cela va donner du style à mes applis.
Merci pour ta source
copyrightx Messages postés 59 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 14 janvier 2016
16 nov. 2005 à 10:07
Que penses-tu alors de cette version ? Quelles améliorations proposerais-tu ?

Copyrightx
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
15 nov. 2005 à 23:12
Désolé j'ai confondu avec la picture qui permet de faire : des "boutons graphiques".
copyrightx Messages postés 59 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 14 janvier 2016
15 nov. 2005 à 15:21
Il n'y a eu qu'une seule source "button" postée jusqu'à ce jour ...

Copyrightx
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
15 nov. 2005 à 08:51
N'aurait-il pas été plus simple de mettre à jour la première source déposée ?
Rejoignez-nous