Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

utilisation d'une Progess bar

10 réponses
Avatar
shoei
Bonjour à tous

J'utilise le VB6.0 pour piloter SolidWorks 2006. Je demande a solidWorks de
me retourner les elements d'un assemblage. Cette demande prend du temps. Je
voulais mettre une barre de progression pendant l'attente. Est ce possible?
De plus, apres le retour des informations, je fais un verification des info
qui sont dans un tableau. Je voudrais également mettre un barre de
progression sur cette fonction de traitement (entrierement programmée en
vb6), comment dois je m'y prendre ?

Merci à tous

10 réponses

Avatar
LE TROLL
Bonjour,

<Menu Projet><composants>[X] microsoft windows common control 6 (sp 6)
+ <appliquer> + <fermer>

ProgressBar...

Après tu joues avec les propriété: max, min, orientation, scrolling et
value...

-----------------

Toutefois, en rajoutant des objets, il y a toujours un risque d'écrasement
de leurs pilotes, non intégrés au noyau vb6_run_Fr, et donc en dessinant
toi-même ta barre avec les objet "shape" tu es certain que ça marchera
toujours...

-----------------

Il faut essayer de réaliser une progression la plus proche de la réalité
ensuite, éventuellement en faisant un premier passage afin de compter les
éléments que va représenter la barre de défilement, donc on alimentera VALUE
suivant le résultat que l'on veut, avec un DoEvents pour lui laisser le
temps de s'afficher, par exp:

scrollebar1.value=x
doevents

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"shoei" a écrit dans le message de news:

Bonjour à tous

J'utilise le VB6.0 pour piloter SolidWorks 2006. Je demande a solidWorks
de
me retourner les elements d'un assemblage. Cette demande prend du temps.
Je
voulais mettre une barre de progression pendant l'attente. Est ce
possible?
De plus, apres le retour des informations, je fais un verification des
info
qui sont dans un tableau. Je voudrais également mettre un barre de
progression sur cette fonction de traitement (entrierement programmée en
vb6), comment dois je m'y prendre ?

Merci à tous


Avatar
Fred
Dans : news:,
shoei disait :
Bonjour à tous



Bonjour,

J'utilise le VB6.0 pour piloter SolidWorks 2006. Je demande a
solidWorks de me retourner les elements d'un assemblage. Cette
demande prend du temps. Je voulais mettre une barre de progression
pendant l'attente. Est ce possible?



Je crains que cela ne soit possible.
S'agit-il d'un seul appel à SolidWorks ou bien de plusieurs opérations
successives ?
Dans le premier cas, il faudrait pouvoir lancer un appel asynchrone
(thread) pour continer à avoir la main dans le code vb6 et afficher une
progression (et quelle progression d'ailleurs puisqu'on n'aurait pas de
retour d'information sur le pourcentage de l'opération effectué)
Or, faire du multithreading avec vb6 est, je crois, quasiment illusoire.

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Avatar
Jacques93
Bonjour Fred et Shoei,
Fred a écrit :
Dans : news:,
shoei disait :
Bonjour à tous



Bonjour,

J'utilise le VB6.0 pour piloter SolidWorks 2006. Je demande a
solidWorks de me retourner les elements d'un assemblage. Cette
demande prend du temps. Je voulais mettre une barre de progression
pendant l'attente. Est ce possible?



Je crains que cela ne soit possible.
S'agit-il d'un seul appel à SolidWorks ou bien de plusieurs opérations
successives ?
Dans le premier cas, il faudrait pouvoir lancer un appel asynchrone
(thread) pour continer à avoir la main dans le code vb6 et afficher une
progression (et quelle progression d'ailleurs puisqu'on n'aurait pas de
retour d'information sur le pourcentage de l'opération effectué)
Or, faire du multithreading avec vb6 est, je crois, quasiment illusoire.




Une possibilité en dehors du multithreading est d'utiliser un .Exe
ActiveX (qui tourne Out Of Process). Cela ne règle pas le problème du
pourcentage effectué, pas plus que Min et Max à affecter à la ProgessBar.

Mais on peut faire aussi bien que Vista ;-) , qui dans plusieurs
situation affiche avec une barre de progression qui boucle : arrivé à un
Max arbitraire on retourne à Min, tant que l'opération n'est pas
terminée. C'est un peu lourd toutefois pour une simmple ProgessBar.

En fait, dans ce cas, le plus simple me semble t-il,est d'utiliser un
contrôle Animation inclut dans Microsoft Windows Common Controls-2 6.0
(mscomct2.ocx)

--
Cordialement,

Jacques.
Avatar
Fred
Dans : news:,
Jacques93 disait :

Hello Jacques,

Une possibilité en dehors du multithreading est d'utiliser un .Exe
ActiveX (qui tourne Out Of Process).



Oui,

En fait, dans ce cas, le plus simple me semble t-il,est d'utiliser un
contrôle Animation inclut dans Microsoft Windows Common Controls-2 6.0
(mscomct2.ocx)



Ou un gif animé peut-être ? Je ne me souviens plus si on peut le faire
avec les contrôles de base.

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Avatar
Jacques93
Bonjour Fred,
Fred a écrit :
Dans : news:,
Jacques93 disait :

Hello Jacques,



[...]

Ou un gif animé peut-être ? Je ne me souviens plus si on peut le faire
avec les contrôles de base.




Non, pas à ma connaissance, problème de copyright je crois, lié à
l'algorithme de compression LZW utilisé (mais je ne suis pas juriste) :

<http://www.commentcamarche.net/video/format-gif.php3>

Même sous Vista cela ne semble pas réglé.
Mais il existe plusieurs ActiveX en freeware,, faut juste trouver le bon
Gif87, Gif89, etc ...

--
Cordialement,

Jacques.
Avatar
jerome crevecoeur
Il est possible d'afficher un sablier aussi, ce qui revient au même !

Jacques93 a écrit :
Bonjour Fred,
Fred a écrit :
Dans : news:,
Jacques93 disait :

Hello Jacques,



[...]

Ou un gif animé peut-être ? Je ne me souviens plus si on peut le f aire
avec les contrôles de base.




Non, pas à ma connaissance, problème de copyright je crois, lié à
l'algorithme de compression LZW utilisé (mais je ne suis pas juriste) :

<http://www.commentcamarche.net/video/format-gif.php3>

Même sous Vista cela ne semble pas réglé.
Mais il existe plusieurs ActiveX en freeware,, faut juste trouver le bo n
Gif87, Gif89, etc ...



Avatar
SAISAS
Bonjour,

mes confrères t'ont déjà expliqué que le plus difficile était d'avoir l'état
réel de progression depuis Solidworks2000 (çà fait quoi ce truc?). En
supposant cela réglé, il doit te suffire de récupérer la main avec un timer
pour mettre à jour ta barre de progression, ou animer un quelconque controle
...

En fait, l'important pour l'utilisateur, c'est qu'il voie les choses "bouger"!

Cordialement.

"shoei" a écrit :

Bonjour à tous

J'utilise le VB6.0 pour piloter SolidWorks 2006. Je demande a solidWorks de
me retourner les elements d'un assemblage. Cette demande prend du temps. Je
voulais mettre une barre de progression pendant l'attente. Est ce possible?
De plus, apres le retour des informations, je fais un verification des info
qui sont dans un tableau. Je voudrais également mettre un barre de
progression sur cette fonction de traitement (entrierement programmée en
vb6), comment dois je m'y prendre ?

Merci à tous


Avatar
shoei
Merci à tous pour vos réponses
En effet l'important est de savoir si le processus est en cours, ou si tous
a plantés.
Je vais essayer avec un gif animé que je n'ai jamais utilisé, mais il faut
un debut a tous ;-)

Merci pour vos réponses


"SAISAS" a écrit :

Bonjour,

mes confrères t'ont déjà expliqué que le plus difficile était d'avoir l'état
réel de progression depuis Solidworks2000 (çà fait quoi ce truc?). En
supposant cela réglé, il doit te suffire de récupérer la main avec un timer
pour mettre à jour ta barre de progression, ou animer un quelconque controle
...

En fait, l'important pour l'utilisateur, c'est qu'il voie les choses "bouger"!

Cordialement.

"shoei" a écrit :

> Bonjour à tous
>
> J'utilise le VB6.0 pour piloter SolidWorks 2006. Je demande a solidWorks de
> me retourner les elements d'un assemblage. Cette demande prend du temps. Je
> voulais mettre une barre de progression pendant l'attente. Est ce possible?
> De plus, apres le retour des informations, je fais un verification des info
> qui sont dans un tableau. Je voudrais également mettre un barre de
> progression sur cette fonction de traitement (entrierement programmée en
> vb6), comment dois je m'y prendre ?
>
> Merci à tous


Avatar
shoei
Bonjour,

je commence a regarder ta solution d'animation, j'ai bien le controle, mais
il me demande un fichier avi. Pourrais tu me dire ou je pourrais trouver des
informations d'aide sur ce controle et les possiblités de crée un avi ?

Salutations

"Jacques93" a écrit :

Bonjour Fred et Shoei,
Fred a écrit :
> Dans : news:,
> shoei disait :
>> Bonjour à tous
>
> Bonjour,
>
>> J'utilise le VB6.0 pour piloter SolidWorks 2006. Je demande a
>> solidWorks de me retourner les elements d'un assemblage. Cette
>> demande prend du temps. Je voulais mettre une barre de progression
>> pendant l'attente. Est ce possible?
>
> Je crains que cela ne soit possible.
> S'agit-il d'un seul appel à SolidWorks ou bien de plusieurs opérations
> successives ?
> Dans le premier cas, il faudrait pouvoir lancer un appel asynchrone
> (thread) pour continer à avoir la main dans le code vb6 et afficher une
> progression (et quelle progression d'ailleurs puisqu'on n'aurait pas de
> retour d'information sur le pourcentage de l'opération effectué)
> Or, faire du multithreading avec vb6 est, je crois, quasiment illusoire.
>

Une possibilité en dehors du multithreading est d'utiliser un .Exe
ActiveX (qui tourne Out Of Process). Cela ne règle pas le problème du
pourcentage effectué, pas plus que Min et Max à affecter à la ProgessBar.

Mais on peut faire aussi bien que Vista ;-) , qui dans plusieurs
situation affiche avec une barre de progression qui boucle : arrivé à un
Max arbitraire on retourne à Min, tant que l'opération n'est pas
terminée. C'est un peu lourd toutefois pour une simmple ProgessBar.

En fait, dans ce cas, le plus simple me semble t-il,est d'utiliser un
contrôle Animation inclut dans Microsoft Windows Common Controls-2 6.0
(mscomct2.ocx)

--
Cordialement,

Jacques.



Avatar
Jacques93
shoei a écrit :
Bonjour,

je commence a regarder ta solution d'animation, j'ai bien le controle, mais
il me demande un fichier avi. Pourrais tu me dire ou je pourrais trouver des
informations d'aide sur ce controle et les possiblités de crée un avi ?

Salutations




Les fichier .avi (Audio Video Interleave) sont des fichiers vidéo ayant
un format propriétaire MS, mais de mémoire, le contôle animation de VB
ne supporte pas le son, . Les petites animation dans l'explorateur (lors
de copie, suppression, etc en sont).

Tu n'as pas la doc en ligne? Je n'arrive pas à mettre la main dessus
dans MSDN. Son utilisation est très simple :

Private Sub StartAni1 ()
With Me.Animation1
.Open App.Path & Toto.avi"
.Play
End With
End Sub

Si tu veux éviter d'avoir à distribuer le(s) fichier(s) .avi en plus de
ton application, tu peux les intégrer à un fichier ressources
(ressources personnalisée) qui sera inclu dans l'exe :

Private Sub StartAni2()
Dim b() As Byte
Dim fNum As Integer
Dim fName As String

On Error Resume Next
Err.Clear
b = LoadResData("TOTO", "AVI")
If Err.Number = 0 Then
fNum = FreeFile
fName = App.Path & "Toto.avi"
Open fName For Binary Access Write As #fNum
Put #fNum, , b
Close #fNum
With Me.Animation1
.Open fName
.Play
End With
End If
End Sub


J'en ai quelques centaines, mais les sites où je les ai récupérés
n'existe plus. Si tu transmets une adresse e-mail valide, je peux te les
envoyer. Sinon tu en a quelques une ici :

http://vbnet.mvps.org/index.html?code/avi/animationzips.htm

Il existe également un certain nombre de freeware permettant de
convertir les différents format entre eux. Si tu trouve ton bonheur,
c'est plus simple que de le créer soi même.

--
Cordialement,

Jacques.