Progressbar bloquée

bimbo777 Messages postés 63 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 17 janvier 2007 - 7 juin 2006 à 17:15
SAXOBIC Messages postés 30 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 1 février 2007 - 16 juin 2006 à 19:44
Bonjour,

Donc j'ai ma progressbar qui se lance et qui fonctionne très bien avec un fichier.
Cependant dès que je mets plusieurs fichiers (genre 10) dans mon appli en vbnet, la progressbar se fige à la moitié mais tout continu parfaitement. (en faite elle se bloque qd j'appele une ligne de cmd avec un shell...)
mais je me répète, ca ne se bloque pas avec peu de fichiers.
J'ai essayé de mettre moins d'incrémentation et rien ne change...
J'ai regardé dans le forum du site et je n'ai pas trouvé de prblm similaire...Y a t'il un moyen d'alléger l'affichage de cette progressbar???

merci beaucoup de votre aide les copains des bois

12 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
7 juin 2006 à 17:35
et en rajoutant ça :

ProgressBar1 = DoEvents

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0
bimbo777 Messages postés 63 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 17 janvier 2007
7 juin 2006 à 17:59
il me dit que DoEvents n'est pas déclaré (c'est en vbnet) tu peux m'aider?

Merci
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
7 juin 2006 à 18:02
Désolé, pas fais gaffe, vb.net je ne connais pas. (DoEvents => VBA & VB6)
Regarde si tu as un équivalent.

en attendant je regarde aussi

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
7 juin 2006 à 18:04
Alors essai ProgressBar1.DoEvents()
sans garantie. Si cela ne fonctionne pas, avant d'initialiser ton progressbar, met
Application.DoEvents()

(j'ai regardé sur Google)

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bimbo777 Messages postés 63 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 17 janvier 2007
7 juin 2006 à 18:21
non ca fonctionne pas...mais c'est censé faire quoi?
0
Utilisateur anonyme
7 juin 2006 à 18:28
Haaa, cette fois c'est bien du .net !
Le DoEvents se trouve dans la class Application:
Met ca dans ta boucle:



System.Windows.Forms.Application.DoEvents()





Kenji

Merci de lire le règlement (vivement conseillé voir obligatoire).

/FONT>
0
Profil bloqué
7 juin 2006 à 18:33
Salut bimbo777
L'équivalent VB6 Doevents() se code ainsi en VB net : System.Windows.Forms.Application.DoEvents()

Cette instruction rend la main au système afin de gérer les événements Windows externes au programme Visual Basic exécuté
Elle est à insérer dans les boucles Do ....Loop, For....Next,etc....en début de boucle

Exemple:
For i% = 0 to nbrefichier%
     System.Windows.Forms.Application.DoEvents()
     ' Instructions de la boucle

next i%

GRENIER Alain[8D]
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
8 juin 2006 à 01:52
Si t'es vraiment embêté, utilise un label (backcolor en vert, ça déchire ! )
sa propriété Width = 0
Si t'as une boucle, imbrique le dedans en lui faisant augmenter cette propriété.
Je sais qu'en vba tu peux mais en .net, je sais pas, mais au lieu du DoEvents, tu peux faire NomForm.Repaint (après calcul du width) A tester en .net

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0
bimbo777 Messages postés 63 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 17 janvier 2007
8 juin 2006 à 11:49
Re,

merci de votre aide encore une fois!!!
Ca fonctionne utilisant dans la boucle:System.Windows.Forms.Application.DoEvents()

mais j'ai un autre soucis, il ne rend plus la main au close en fin de code.
Ce qui fait que l'appli ne se ferme plus et ma pop up de fin n'apparait plus.
Y a t'il un moyen de mettre fin à cette instruction qd elle a été utilisé?

Merci
0
cs_franckydeluka Messages postés 228 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 4 janvier 2008 1
8 juin 2006 à 12:23
Cela n'a rien à voir  en effet :
Quant tu utilises l'instruction DoEvents tu rends la main aux autres applications que le temps de l'instruction (ce qui pour un PC est amplement suffisant)
Ton souci sur le close doit être ailleurs

Deluka.
0
JB76000 Messages postés 135 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 14 février 2013
8 juin 2006 à 15:29
Ferme ta fenêtre, et au moment ou tout devrait être fermé, fais un break et regarde où est-ce que ton appli se trouve.

Jer
0
SAXOBIC Messages postés 30 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 1 février 2007
16 juin 2006 à 19:44
pour bimbo777

utilise les threads c'est à dire tu fais tu temps partagé, du multitache.

ex  .net:

'déclaration de la tache
Public
ThreadXXxx
As
New System.Threading.Thread(
AddressOf SystemP.XXxx)

'lance la tache
SystemP.ThreadXXxx.Start()

'routine à lancer en tache
sub XXxx

..........

ThreadXXxx.Abort()

end sub

A+
0
Rejoignez-nous