OCX - PROGRESSBAR

cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012 - 27 mars 2003 à 09:54
cs_bidouille007 Messages postés 257 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 22 décembre 2012 - 2 sept. 2009 à 02:09
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/6566-ocx-progressbar

cs_bidouille007 Messages postés 257 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 22 décembre 2012 1
2 sept. 2009 à 02:09
zut de zut ça marche pas avec VB 2008 EXPRESS lors de l'ajout de la référence snif
cs_ym_trainz Messages postés 160 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 21 avril 2015
11 janv. 2008 à 20:08
Bonjour RenField !

C'est toujours un plaisir d'utiliser un de tes codes source ;-)
Que dire ? Nickel, bravo !
10/10, comme d'hab.

Cordialement,
ym_trainz
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
1 oct. 2007 à 13:29
salut, évidement 10/10, mais juste une chose, peux tu expliquer les paramétres à placer ? j'en ai trouvé un ou deux mais pas tous (j'suis sous vb.net), sinon elle tourne nickel sous .NET

Dim a As String = AxReyProgressBar1.Caption ' retourne la valeur de l'afficheur
'AxReyProgressBar1.Complete() ??? affichage plein ???
AxReyProgressBar1.Reset() 'retour à zéro
' AxReyProgressBar1.set_BackColor(??)
'AxReyProgressBar1.set_BarColor (??)
'AxReyProgressBar1.set_CaptionAlignment(?? )
'AxReyProgressBar1.set_CaptionColor (??)
AxReyProgressBar1.set_CaptionMask("ReyProgressBar") 'affichage du texte
AxReyProgressBar1.set_CaptionType(0) '????
AxReyProgressBar1.set_Direction(0) '???
AxReyProgressBar1.set_Max(60)'ok
AxReyProgressBar1.set_Min(0) 'ok
AxReyProgressBar1.set_ProgressType(1) '0carré, 1rond transparent, 2rond avec fond
'AxReyProgressBar1.set_ShowCaption(???)
AxReyProgressBar1.set_SmoothScrolling(1) ???
AxReyProgressBar1.set_StartAngle(180) ' angle de départ
AxReyProgressBar1.set_Value(0) ' valeur à afficher

tiens puis il me jette avec ça : :(
Private Sub AxReyProgressBar1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles AxReyProgressBar1.MouseClick (mouseclick ne peux pas gérer car pas la meme signature ralalala les joies de VB.net ^^) merci pour tes infos et encore Bravo
bewcy Messages postés 1 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 10 août 2007
10 août 2007 à 17:55
Merci beaucoup pour ton OCX : elle va me faire gagner du temps et c'est vraiment du bon boulot.
10/10 sans contexte !!!
ayoubinio3 Messages postés 4 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 27 mai 2007
9 juil. 2007 à 18:25
10/10
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
4 août 2006 à 21:25
Salut, je viens de découvrir ta source, excelente.

Elle va m'être très utile.

Il me manque juste deux petites possibilités.
- Pouvoir afficher la barre de progression de 0 à xxx avec en même temps le texte de xxx à 0.
- Gerer le cas ou le max est inconnu.

Pour le premier cas je devrais m'en sortir en jouant sur le masque et en rajoutant une condition Replace dans le Refresh.

Pour le second cas, certains logiciels ont une progressbar style K2000. Je sais pas si c'est possible avec ton ocx? Ca va être plus chaud à gérer je pense.

Je met 10 pour le taf, ça le mérite.


Sevyc64 (alias Casy)
# LE PARTAGE EST NOTRE FORCE #
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 juin 2006 à 07:25
Tricheur !! (pour la note) lol

Désolé pour le MP, j'avais pas vu le commentaire. Et bien tes explications sont très claires. Je te remercie d'ailleurs d'avoir répondu aussi rapidement.

Bon WE.

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 juin 2006 à 06:00
Merci pour ce 10 (je ne suis pas présomptueux : j'ai accès à "kikanotékoi")

en fait, a moins de préciser dans les options du projet que tu souhaite maintenir la compatibilité avec un ocx existant (celui du Zip, par exemple), quand tu vas recompiler l'OCX, celui-ci va se voir générer un nouvel CLSID

késako ? c'est simplement un identifiant, qui ressemble à
{27D0BCCC-344D-4287-AF37-0C72C161E24C}

en changeant cet identifiant, Windows, par la suite, considère que l'ocx du zip, et celui que tu as recompilé sont complètement distincts.

lorsque tu fais RegSvr32, windows appelle une petite fonction de l'OCX, qui va écrire en base de registre le nom du(/des) controle, ainsi que leur CLSID, ca écrit le CLSID de l'ocx et son emplacement sur le disque... la boucle est bouclée :

lorsqu'un programme demande la création d'un ReyProgressBar.ctl, Windows vva chercher ce controle, va chercher la version 'courante' (en cas de mise a jour)
va en déduire le CLSID, qui va lui permettre, enfin, d'identifier l'OCX contenant le controle. Enfin, il va faire joujou avec pour te créer ton controle.

si tu as d'autre question... n'hésites pas ^^
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 juin 2006 à 02:38
Salut Renfield,

Comme tu le sais, j'adore tes OCX. Cependant, j'observe un p'tit souci :
Je viens de rajouter une dernière source (trieur de doublons) et je souhaitais utiliser ton reyProgressBar.

Je l'ai compilé et mis dans le dossier de mon projet. Je l'ai ensuite référencé, donc là nickel, mais si je modifie le nom du dossier où est contenu l'OCX => la référence n'est plus chargé.
Je sais paré ce problème donc il est pas génant en soi, c'est juste qu'en fournissant ton OCX dans le Zip de ma source, lorsque les membres téléchargent la source doublons, l'OCX ne se charge pas après ouverture du .vbp.

Temporairement j'ai mis le ProgressBar du SP5 (common contrôls) et avec le Manifest de PCPT, il est mieux : mais ça ne vaut pas le tiens.

Si t'as une solution, je suis preneur !

(j'avais pas noté cet OCX, c'est chose faite. Je ne te dis pas la note, je suis sûr que tu la connais) ;-)

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2006 à 12:53
Le timer n'accepte pas de grand interval, effectivement... (65535 maximum)
scoboy Messages postés 56 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 17 janvier 2008
19 mai 2006 à 10:33
La valeur max était bien à 100... ce doit être alors la valeur de l'intervel de mon timer qui doit être fausse, qu'en penses-tu?
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2006 à 09:48
ok..

quels sont est la valeur du Max de ta progressbar ?
(tu dois pouvoir la réduire, et mettre 100 : directement le pourcentage.)
scoboy Messages postés 56 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 17 janvier 2008
19 mai 2006 à 09:19
il y a effectivement un graphe pour l'acquisition mais le temps n'a pas d'influence sur celle-ci, la progressbar sert à montrer à l'utilisateur si son acquisition est bientôt fini ou pas.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 mai 2006 à 08:03
j'avoue ne pas avoir saisi....
l'évolution, tu l'affiche pas plutot sur un graph ?
scoboy Messages postés 56 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 17 janvier 2008
18 mai 2006 à 23:29
Tout simplement excellent!

Mais j'ai quand même une petite chose à te demander : voilà en fait je veux utiliser une progressbar permettant de montrer l'évolution en temps d'une acquisition (l'utilisateur fixe avant son acquisition un temps), jusque là pas de problème, sauf que les acquisitions peuvent et doivent permettre d'aller jusqu'à 12 heures d'acquisition! Seulement le maximum au niveau temps de la progressbar ne permet pas celà, un message d'erreur s'affiche alors à la compilation lorsque je veux faire une aquisition de 2 heures. Comment pourrais-je corriger ?

D'avance merci
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 oct. 2004 à 10:05
tu as ajouté un Doevents dans ta boucle de lecture ?
patrickzfr Messages postés 28 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 2 septembre 2012
23 oct. 2004 à 17:10
Merci pour la réponse

j'ai mis NbEnr comme j'aurais pu mettre autre chose! en l'occurence, il s'agit d'un fichier texte d'environ 800 lignes dans lequel je fais des tris et des comparaisons pour sauvegarder dans un nouveau fichier ce qui m'intéresse... rien de bien méchant!

Et le pb est que si je prends le même code avec cette fois ci la "vraie" progressbar de VB, en remplaçant les "ReyProgressBar1.Value" par "ProgressBar1.Value" la, aucun souci, la progression est linéaire et l'affichage progresse bien jusqu'au 100%..

curieux non ??
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 oct. 2004 à 23:36
simple hypothese, ta boucle est un peu gourmande :


For I = 1 to NbEnr

.....

DoEvents '<<<< Pour redonner la main au système
Next I
patrickzfr Messages postés 28 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 2 septembre 2012
17 oct. 2004 à 15:40
Bonjour,

j'utilisais jusqu'à maintenant la ProgressBar fournie en standard avec VB6, mais je viens de tomber sur celle de Renfield et j'aimerais bien l'utiliser!

J'ai donc ajouté le composant OCX dans mon VB, repris une de mes sources qui contient déja la ProgressBar standard et inséré la nouvelle ReyProgressBar sur ma Form, puis j'ai tout simplement remplacé dans le code "ProgressBar1" par "ReyProgressBar1".

... mais ça ne marche pas!! Aucun message d'erreur, mon traitement s'effectue sans soucis, mais rien ne bouge, la barre reste à 0%..
En remettant l'ancienne ProgressBar, tout refonctionne correctement (environ 8 secondes de progression entre 0 et 100 pour la barre windaube, donc je la vois parfaitement avancer).

Qu'est-ce que je fais de mal ??

Je laisse les valeurs par défaut de la ReyProgressBar et voila mon code:


Dim increment As Currency

' ....... je fais un bilan de tout ce que j'ai à traiter...

increment = 100 / (LongueurTotale / 800) ' ... et j'initialise la progressbar à zéro
ReyProgressBar1.Value = 0

....

' je lance mon traitement dans une boucle:

For I = 1 to NbEnr

.....

' et a la fin de chaque opération, j'incrémente la ProgressBar :

If (ReyProgressBar1.Value + increment) < 100 Then
ReyProgressBar1.Value = ReyProgressBar1.Value + increment
Else
ReyProgressBar1.Value = 100
End If


Next I
luckymonaco Messages postés 6 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 14 janvier 2007
12 sept. 2004 à 23:38
Merci

super cette progess,je vais l'utiliser dans une appli pro.

encore merci pour le boulot
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
31 déc. 2003 à 13:59
C'était peut être rien... pour toi ;o)

Merci
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
31 déc. 2003 à 07:28
voila moustachu, mis a jour (c'etait rien ;) )
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
29 déc. 2003 à 12:43
Salut, de mieux en mieux, cette progress bar.

Juste un petyit détail quand on passe de "rond" à "barre", chez moi, ça reste "rond" mais à l'execution c'est bien une "barre". C'est clair :o?

En tous cas, vraiment très bien et fluide
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
29 déc. 2003 à 11:13
OK reçu 5/5...
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 déc. 2003 à 11:09
lol. merci.... Je n'ai eu qu'à modifier ma progressBar déjà existante.....
et a refaire l'API AngleArc, qui etait incompatible avec Windows98.....

J'en conclus que c'est ce que tu souhaitais.......

ok pour la capture, mais j'ai releasé vite fait ce matin avant de partir......(on verra ca se soir)


la couleur du texte peut-etre changée. Utilises CaptionColor pour définir la couleur
et met UseCaptionColor à True pour l'activer......
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
29 déc. 2003 à 10:14
Parfais, cette ProgressBar ronde est bien ce que je recherchais.

Il ne me reste qu'à étudier le tout pour pouvoir jouer avec les couleurs et autres options. Est-il possible de mettre une autre couleur que celle du fond au texte ?

Bravo pour la qualité et la rapidité du service : le contrôle était livré dans les 16 heures après la commande. 10/10

Merci.

PS: tu devrais refaire une capture avec l'ensemble des possibilités de ta source.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 déc. 2003 à 07:18
Le progressbar peut maintenant être affiché en rond......
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 déc. 2003 à 21:39
pour compiler un OCX, pas de soucis particulier, il te sufft de creer un projet 'Controle ActiveX' et non 'Exe Standard' dans VB. Ensuite, tu compile en faisant Fichier > Creer Rey_ProgressBar.OCX.


Je viens de mettre l'OCX dans le zip, si tu veux...
pino2 Messages postés 13 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 8 février 2004
15 déc. 2003 à 18:16
NON JE DISAIS QUE J'AI DéJà INSTALLER DES OCX

MAIS JE N'EST PAS LES OCX DE CETTE SOURCE
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
15 déc. 2003 à 18:13
Non :), si tu as déjà les OCX t'as pas besoin de recompilé :)
pino2 Messages postés 13 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 8 février 2004
15 déc. 2003 à 18:05
merci moustachu de ta réponse
pour rajouter auncun problème j'ai déja installé des ocx
mais par contre pour compiler ?
peux tu m'aider
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
15 déc. 2003 à 10:30
Je confirme ! Nickel sous NT4, c'est tellement beau ... et rare sur cette plateforme que ça me ferait pleurer de bonheur :'o)

Pour Pino2, je pense qu'il faut que tu compile l'ocx puis tu le rajoutes comme composant dans l'éditeur de macro :Menu Outils > Références puis click droit sur la boites à outils >> Controles supplémentaires
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 déc. 2003 à 23:51
je ne sais pas comment l'utilisation de composant se passe sous Excel, ou VbA, en général, essaies de poser la question su rle forum, si tu le désires.
---------------------------------------------------------------------------
Je viens de mettre a jour (encore) mon controle, pour y intégrer la possibilité de l'afficher en non-Smooth (petits rectangles; voir capture).

j'ai aussi ajouté un Offset parametrable sur la position du Texte.
pino2 Messages postés 13 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 8 février 2004
14 déc. 2003 à 11:37
Bonjour ton progressbar est tres bien j'ai essayé avec vb parfait
il me plait
mais j'utilise exclusivement excel donc vba
comment pouvoir l'utiliser ?
merci
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
13 déc. 2003 à 13:58
Nickel. Je le testerai sous NT4 Bien sûr... ;o)

J'en profite pour noter ce n'téait pas encore fait. POur moi c'est du 10
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 déc. 2003 à 12:06
Mise à jour d'importance...

- Personnalisation du texte
- ProgressBar en dégradé
- Personnalisation de plein de choses
- Enfin compatible Windows 98
- Plus Rapide et moins gourmand
- Evenements & Méthodes supplémentaires
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 mai 2003 à 14:15
c'est reglé , j'avais mis un controle , mais m'etais trompé de variable , pour le test , je comparais avec le max , juste avant de fixer celui-ci a la valeur choisie par l'utilisateur........
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 mai 2003 à 14:09
oups , je regardes ca , et j'upload de nouveau , dsl !!!
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
2 mai 2003 à 11:31
Je me retrouve hélas avec une erreur "Dépassement de capacité" ou "Espace pile insuffisante" = > En cause : le RESIZE du contrôle qui ne contient pas de gestion d'erreur et qui se retrouve avec des 0 à gérer
Case [Pourcentages Int]:
mCapW = TextWidth(Int((mMax * 100) / (mMax - mMin)) & "%")

Toutefois, bonne présentation.
cs_Zenith Messages postés 67 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 27 avril 2008
29 avril 2003 à 14:31
10/10 (et oui, encore un :)
cs_Zenith Messages postés 67 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 27 avril 2008
29 avril 2003 à 13:48
Très beau et mieux que celle de VB par défaut (selon moi :)
10/10
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 avril 2003 à 16:12
je l'ai mise a jour de nombreuses fois , je la changerais ici aussi , pour l'instant , allez voir la.....

http://www.vbfrance.com/article.aspx?Val=8216
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
7 avril 2003 à 22:21
Pour empêcher le clignotement du label, pourquoi ne supprimerais-tu pas celui-ci en le remplaçant par une API qui écrirait le pourcentage sur ta barre ?
J'avais vu ça quelque part... faudrait peut-être que je remette la main dessus ?
cs_Appil Messages postés 208 Date d'inscription mercredi 10 avril 2002 Statut Membre Dernière intervention 11 juin 2014
2 avril 2003 à 12:51
Tres cool .. Bravo 9/10
Golog Messages postés 224 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 22 décembre 2009
28 mars 2003 à 07:53
super la source , juste ce qu'il me fallait , beau graphique ossi ;)
10/10 :D
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 mars 2003 à 20:13
J'ai donc mis a jour la source , en fonction de vos commentaires. Encore merci.
Bricomix Messages postés 340 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 14 février 2005
27 mars 2003 à 17:25
Rien à dire ! ProgressBar très bien faite !!! 10/10
cs_sub-zero Messages postés 98 Date d'inscription mercredi 22 novembre 2000 Statut Membre Dernière intervention 12 juillet 2005
27 mars 2003 à 11:50
oui c sympa juste un ou deux conseils

*ajoute Picture1.Refresh dans Sub UserControl_Paint() ca enleve le flicking et les pb de rafraichissement qd la la propriété value change tro vite

*évite de recalculer dans Property Let Value label(0) et label(1) ont la mem valeur il vaut tjrs mieux affecter la valeur der label(0) que de recalculer, autant économiser du CPU -surtt ke les progress bar c pour les traitements de fond :) -

voila sinon sympa le design.
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
27 mars 2003 à 09:54
J'aime beaucoup. 10 simple et sobre
Rejoignez-nous