Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

bare de progression

16 views
Skip to first unread message

DAN

unread,
May 1, 2010, 11:18:53 AM5/1/10
to
Bonjour a tous.
dans mon application j'envoie des images par mail et je voudrai faire
d�filer une barre de progression pendant le temps de cet envoie.
existe t'il un system de progressbare automatique que je n(aurai qu"a m�tre
a visible = true ou visible = false?
D'avance merci de votre aide

DAN

unread,
May 1, 2010, 2:04:10 PM5/1/10
to
Bonjour a tous.
je viens de me rendre compte que c'est certainement l'instruction
oSmtp.Send(oMessage)
envoie de mes mails qui figent ma barre de progression.
donc je cherche un autre moyen pour que l'utilisateur ne pense pas que mon
programme est bloqu� alors que c'est l'envoie des mails avec les photos qui
est long.
D'avance merci de votre aide.
PS a moins que qu'il ne faille inclure
oSmtp.Send(oMessage) dans le timer de progression .

"DAN" <aaant...@club-internet.fr> a �crit dans le message de groupe de
discussion : Oe0yJGU...@TK2MSFTNGP02.phx.gbl...

troll@enfer.fr LE TROLL

unread,
May 1, 2010, 2:35:29 PM5/1/10
to
Bonjour,

Vois si tu n'as pas, mini, maxi et value, cette derni�re valeur donne la
taille entre mini et maxi (en vb6).
Pour le calcul exacte, il faudrait pourvoir compter les octets qui passent,
�a je ne sais pas faire, par contre tu peux faire un �talonnage, puis selon
ce dernier tu fais ta progression au timer (value = value + x pixels), et
quand tu as la fin de transmission tu termines ta barre � fond.
Tu peux aussi mettre un sablier d�j�.

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" <aaant...@club-internet.fr> a �crit dans le message de

news:etRShiV6...@TK2MSFTNGP06.phx.gbl...

Joël

unread,
May 1, 2010, 3:42:04 PM5/1/10
to
Bonsoir

oSmtp.Send(oMessage) ' bloque l'application pendant l'envoi
il y a aussi
oSmtp.SendAsync(oMessage) ' Envoie de fa�on asynchrone le message

voir:
http://msdn.microsoft.com/fr-fr/library/system.windows.messaging.localmessagesender.sendasync(VS.95).aspx

Cordialement
Jo�l

"DAN" <aaant...@club-internet.fr> a �crit dans le message de groupe de

discussion : etRShiV6...@TK2MSFTNGP06.phx.gbl...

Joël

unread,
May 1, 2010, 4:55:58 PM5/1/10
to
plut�t ce lien
SmtpClient.SendAsync, m�thode
http://msdn.microsoft.com/fr-fr/library/system.net.mail.smtpclient.sendasync.aspx

Cordialement
Jo�l


"DAN" <aaant...@club-internet.fr> a �crit dans le message de groupe de

discussion : etRShiV6...@TK2MSFTNGP06.phx.gbl...

DAN

unread,
May 2, 2010, 4:48:36 AM5/2/10
to
Merci de votre aide .
J'ai essay� l'instruction

oSmtp.SendAsync(oMessage) ' Envoie de fa�on asynchrone le message


Je ne sais pas dans ce cas par quoi je dois remplacer l'instruction
Dim oSmtp As New System.Net.Mail.SmtpClient

"Jo�l" <jo...@hotmail.fr> a �crit dans le message de groupe de discussion :
D2B30B60-9F32-47F6...@microsoft.com...

DAN

unread,
May 2, 2010, 4:50:51 AM5/2/10
to
Merci de ton aide .
C'est bien l'instruction oSmtp.Send(oMessage) qui ' bloque l'application
pendant l'envoi comme me l'indique Joel

"LE TROLL" <le tr...@enfer.fr> a �crit dans le message de groupe de
discussion : #co560V6...@TK2MSFTNGP05.phx.gbl...

Joël

unread,
May 2, 2010, 7:11:25 AM5/2/10
to
Bonjour

Sa ne change pas c'est toujours New System.Net.Mail.SmtpClient

par contre il faut mettre en place pour le contr�le de l'envoi
SendCompletedCallback
pour g�rer erreur et si bien envoy�
sur le lien que j'ai envoy� il y a un exemple en C

' envoi
Dim Message As New MailMessage(Expediteur, Destinataire, LeSujet, LeMessage)
Dim Client As New SmtpClient("smtp." & ServeurExpediteur)

AddHandler client.SendCompleted, AddressOf SendCompletedCallback
Dim userState As String = "test message1"
client.SendAsync(Message, userState)

' controle l'envoi
Private Shared Sub SendCompletedCallback(ByVal sender As Object, ByVal e As
AsyncCompletedEventArgs)
' Get the unique identifier for this asynchronous operation.
Dim token As String = DirectCast(e.UserState, String)

If e.Cancelled Then
Console.WriteLine("[{0}] Send canceled.", token)
End If
If Not e.[Error] Is Nothing Then
Console.WriteLine("[{0}] {1}", token, e.[Error].ToString())
Else
Console.WriteLine("Message sent.")
End If

End Sub

Cordialement
Jo�l

"DAN" <aaant...@club-internet.fr> a �crit dans le message de groupe de

discussion : uxKztQd6...@TK2MSFTNGP04.phx.gbl...

DAN

unread,
May 3, 2010, 6:34:42 AM5/3/10
to
Merci Joel de ton aide.
J'ai commenc� a exploiter ce code qui fonctionne mais mon progressbar
reste fig� au moment de SendAsync
j'ai cod� mon progressbar de la facon suivante pour ne pas a avoir a coder
un timer:
ProgressBar1.Maximum = 1000
ProgressBar1.Minimum = 0
ProgressBar1.Step = 5
ProgressBar1.Value = 5

qu'en penses tu?


"Jo�l" <jo...@hotmail.fr> a �crit dans le message de groupe de discussion :

ufbA2ge6...@TK2MSFTNGP02.phx.gbl...

Joël

unread,
May 3, 2010, 7:56:05 AM5/3/10
to
Bonjour,
ben je ne vois pas comment il pourrai bouger ?
tu met ProgressBar1.Value = 5
faudrait peut �tre le mettre dans une boucle
for i as Integer=0 to 1000
ProgressBar1.Value = i
next

mais comme on ne sais pas le temps que va prendre le temps de l'envoi
(ProgressBar1.Maximum = 1000 ???)
je pense qu'il vaut mieux mettre la propri�t� du ProgressBar1.Continuous
ou une image Gif
et de le rendre visible avant
client.SendAsync(Message, userState)

et dans Private Shared Sub SendCompletedCallback(ByVal sender As Object,
ByVal e As AsyncCompletedEventArgs)
le rendre invisible

Cordialement
Jo�l

"DAN" <aaant...@club-internet.fr> a �crit dans le message de groupe de

discussion : OOnopwq6...@TK2MSFTNGP04.phx.gbl...

troll@enfer.fr LE TROLL

unread,
May 3, 2010, 8:26:38 AM5/3/10
to
Bonjour,

Le step ne peut pas �tre fixe, ce doit �tre un ratio de quelque chose,
car le fichiers n'ont pas tous la m�me taille, il faut faire un r�gle de
trois entre ce qui est envoy� et le nombre de step possibles, et chaque
octet ou ko ? correspond � x step.
Je ne m'y connais pas assez dans ce genre d'envoi, mais si tu as un moyen de
savoir combien d'octets tu envoies en permanence, c'est � partir de cet
�l�ment qu'il faut d�finir l'avancement.

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.

.


"DAN" <aaant...@club-internet.fr> a �crit dans le message de

news:OOnopwq6...@TK2MSFTNGP04.phx.gbl...

DAN

unread,
May 3, 2010, 3:56:21 PM5/3/10
to
Merci de ton aide mais quand on ne conna�t pas la dur�e du processus,
indiquer � la ProgressBar d'avancer de gauche � droite (comme lors de
l'ouverture de Windows XP)

MyBarre.Style = ProgressBarStyle.Marquee

"LE TROLL" <le tr...@enfer.fr> a �crit dans le message de groupe de
discussion : OuBhIwr6...@TK2MSFTNGP02.phx.gbl...

DAN

unread,
May 3, 2010, 4:06:18 PM5/3/10
to
Excuse moi Joel, j'avais oubli� de t'indiquer la derni�re ligne
elle ne demande qu'a la progressbar d'avancer de gauche a droite.


MyBarre.Style = ProgressBarStyle.Marquee

si non effectivement rien ne bouge
Malgr� cela dans le sendasync le progressbar reste fig�
penses tu que je devrai utiliser un timer et de quelle facon?
A+
Dan

e

" <jo...@hotmail.fr> a �crit dans le message de groupe de discussion :

#vK$der6KH...@TK2MSFTNGP05.phx.gbl...

troll@enfer.fr LE TROLL

unread,
May 4, 2010, 2:30:02 AM5/4/10
to
Bonjour Dan,

Je ne m'y connais pas assez en vbNet pour te r�pondre, peux-tu aller
dans le forum vbNet, tu auras davantage de gens qui vont r�pondre ?

http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/threads

Il faudrait d�j� r�cup�rer la taille de l'envoi, mais je crois que tu
n'as pas toutes les informations, la question suivante pourrait �tre :
- 'Compter les octets d'un envoi mail ?"

A partir de la
step = maximum / nombre octets

for i = 1 to maximum d'octets ' boucle de principe
envoi 1 octet
step = step + 1
progressBar1.Value = step
next i

Il est fort possible qu'il te faille d'autres �l�ments comme des API
(comme "wLanApi", car envoyer un mail avec une image plus compter ce qui est
envoy� n'est pas courant (tu le vois bien aux r�ponses ici), il faut que tu
tombes sur quelqu'un qui � l'habitude de manipuler tout �a.
Toutefois, vois dans tes commandes actuelles vois s'il n'y a pas un exemple,
une fonction qui permette d'envoyer les octets un par un (s'ils passent de
ko en ko, suffit de remplacer dans la division "nombre octets" par "nombre
de ko".

En attendant tu peux toujours affichier un nouvelle form vbModal avec le
sablier et un mssage d'attente d'envoi...

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" <aaant...@club-internet.fr> a �crit dans le message de

news:%23jXlfqv...@TK2MSFTNGP05.phx.gbl...

Joël

unread,
May 4, 2010, 4:56:00 AM5/4/10
to
Bonjour Dan, Le Troll
Bien sur avec le nombre d'octets connu sa aurait beaucoup plus simple pour
l'utilisation du progressbar
mais apparemment avec System.Net.Mail enfin je n'ai pas trouv� quelque chose
qui renvoi le nombre d'octets
avec SendAsync
c'est pourquoi j'ai opter pour la deuxi�me solution que j'indiquais
j'envoi mon message en affichant une image GIF anim� et un texte
d'informations
une fois le message trait� j'affiche le r�sultat dans le teste d'info et
rend invisible mon image gif
et qui fonctionne parfaitement
voici le code que j'utilise:
' envoi le message
Me.PictureBox1.Visible=True
Me.LabelEnvoi.Text = "Envoi photos en cours... Patientez !"
Me.LabelEnvoi.Refresh()

' envoi en cours
AddHandler EmailClient.SendCompleted, AddressOf
SendCompletedCallback
Dim userState As String ="Mon message"
EmailClient.SendAsync(Message, userState)


une fois le message trait�
Private Sub SendCompletedCallback(ByVal sender As Object, ByVal e As
AsyncCompletedEventArgs)
' Obtenir l'identifiant unique pour cette op�ration asynchrone.


Dim token As String = DirectCast(e.UserState, String)

If e.Cancelled Then
Me.LabelEnvoi.Text = "Email photos annuler !"


End If
If Not e.[Error] Is Nothing Then

Me.LabelEnvoi.Text = e.[Error].ToString
Else
' envoi r�ussi
Me.LabelEnvoi.Text = "Email photos envoy� avec succ�s !"
End If

Me.PictureBox1.Visible = False
Me.Cancel_Button.Text = "Ok"
Me.Cursor = Cursors.Default
My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Exclamation)
End Sub

Cordialement
Jo�l


"LE TROLL" <le tr...@enfer.fr> a �crit dans le message de groupe de

discussion : FCB2DBB6-06CD-4F2C...@microsoft.com...

DAN

unread,
May 6, 2010, 3:03:11 PM5/6/10
to
Salut Joel.
c'est super sympa mais la tu n'(utilises pas de progressbare et moi je
voudrai montrer qq chose qui bouge pour que l'utilisateur ne penses pas que
le programme est bloqu�.
je vais essayer ce que tu m'indique pour voir ce que cela donne.
A+
Dan

"Jo�l" <jo...@hotmail.fr> a �crit dans le message de groupe de discussion :

e5Uree26...@TK2MSFTNGP05.phx.gbl...

QMARK.GIF
ARROW.GIF

Joël

unread,
May 6, 2010, 5:12:12 PM5/6/10
to
Bonsoir Dan,
comme je l'ai dit moi j'ai choisi un gif anim�e genre d�marrage Windows
mais je viens d'essayer avec un progressbar et pas de probl�me
sa fonctionne sa me parait bizarre qu'il ne bouge pas chez toi puisque
l'envoi se fait en Async
donc l'application n'est pas bloquer pendant l'envoi
avec EmailClient.SendAsync(Message, userState)

sur ma forme un ProgressBar1 avec les propri�t�s
ProgressBar1.Style = ProgressBarStyle.Marquee
ProgressBar1.MarqueeAnimationSpeed = 20
ProgressBar1.Visible = False


dans le code
avant l'envoi je le rend visible et invisible une fois le message envoy�
et il fonctionne


Cordialement
Jo�l


"DAN" <aaant...@club-internet.fr> a �crit dans le message de groupe de

discussion : #tcsv6U7...@TK2MSFTNGP02.phx.gbl...

troll@enfer.fr LE TROLL

unread,
May 6, 2010, 6:42:10 PM5/6/10
to
Eh, le sablier... il bouge !

Ben alors il faut que tu cherches jusqu'� trouver une personne qui sait, ou
un programme ce doit �tre possible puisque tous les t�l�chargements se font
de la sorte, regardes aussi dans les API, qui sait ? Sur vb aussi des
exemples.

Y aurait bien... une id�e comme �a, ce serait de lire le d�bit, puis de
faire une application autonome (un autre exe), qui affich� toujours au
premier plan, s'occuperait de la barre de d�filement en prenant pour pas
(step), la taille / d�bit, mais bon, c'est bien parce que tu veux une
barre...

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"DAN" <aaant...@club-internet.fr> a �crit dans le message de

news:%23tcsv6U...@TK2MSFTNGP02.phx.gbl...

DAN

unread,
May 15, 2010, 12:38:58 PM5/15/10
to
Salut.
j'ai bien essay� de faire une appli autonome mais impossible de la metre au
premier plan, elle fonctionne bien pourtant.
Sous vb6 j'avuais bien r�ussi en utilisant le contr�le animation quui n'as
pas son �quivalent vb.net
,

"LE TROLL" <le tr...@enfer.fr> a �crit dans le message de groupe de

discussion : emMYf1W7...@TK2MSFTNGP02.phx.gbl...

0 new messages