IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Problème enchaînement des instructions [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club Avatar de Cybercope
    Homme Profil pro
    Programmeur amateur
    Inscrit en
    Mai 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Programmeur amateur

    Informations forums :
    Inscription : Mai 2014
    Messages : 78
    Points : 59
    Points
    59
    Par défaut Problème enchaînement des instructions
    Bonjour,

    je développe une application qui contient un installateur.
    L'utilisateur sélectionne les éléments à télécharger et à installer.

    Ma Form dispose d'une progressebar, d'un label et d'une listbox.
    je souhaite que pour l'étape de téléchargement, la progressebar avance dès qu'un élément parmi ceux sélectionnés est téléchargé et que son nom apparaisse dans la listbox. De plus, je souhaite que l'url du site sur lequel l'élément est téléchargé soit affichée avec le label.

    J'ai un dictionnaire contenant pour chaque élément, l'url de téléchargement correspondante :
    (Pour des raisons de sécurité, l'adresse URL est replacé par ****)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    Sub CreateDicoPath()
            Try
                If My.Settings.type = "p/l" Then
                    dicopath.Add("ResEqua (1.0)", "****/Ind6x/download/software/ResEqua.zip")
                    dicopath.Add("CanFormer (1.0)", "****/Ind6x/download/software/CanFormer.zip")
                    dicopath.Add("CylinderSt (1.0)", "****/Ind6x/download/software/CylinderSt.zip")
                    dicopath.Add("TPE - Atterrissage (1.0)", "****/Ind6x/download/software/TPE-Atterrissage.zip")
                    dicopath.Add("AutoFlightPlan (1.0)", "****/Ind6x/download/software/AutoFlightPlan.zip")
                    dicopath.Add("RunFolder (1.0)", "****/Ind6x/download/software/RunFolder.zip")
                    dicopath.Add("SpamKey (1.0)", "****/Ind6x/download/software/SpamKey.zip")
                    dicopath.Add("Spwords (1.0)", "****/Ind6x/download/software/Spwords.zip")
                    dicopath.Add("AdrnSVT (1.0)", "****/Ind6x/download/software/AdrnSVT.zip")
                Else
                    dicopath.Add("Livrée Bell 206b Croatian Air Force", "****/Ind6x/download/fsx/")
                    dicopath.Add("Livrée MIG-21 Croatian Air Force", "****/Ind6x/download/fsx/")
                    dicopath.Add("Livrée Boeing 737-800 Hellfest 2016", "****Ind6x/download/fsx/")
                    dicopath.Add("Scène Tromelin (AFT) Version_01", "****/Ind6x/download/fsx/")
                    dicopath.Add("Scène Tromelin (AFT) Version_02", "****/Ind6x/download/fsx/")
                End If
            Catch ex As Exception
                MsgBox("An error has occurred, the application will restart")
                Application.Restart()
            End Try
        End Sub

    Le téléchargement a pour code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub download()
            Try
                For Each item In listinstall
                    Label2.Text = dicopath(item)
                    Listbox1.Items.Add(item)
                    My.Computer.Network.DownloadFile(dicopath(item), path & "\" & item & ".zip")
                    ProgressBar1.Value += progress
                Next
            Catch ex As Exception
                MsgBox("An error has occurred, the application will restart")
                Application.Restart()
            End Try
        End Sub


    La création du dictionnaire ainsi que l'appel de la procédure est exécutée par ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            Button2.Enabled = False
            Call CreateDicoPath()
            Call download()
        End Sub

    NB: progress = 100/nbr d'éléments à télécharger


    Mon probleme :

    Le téléchargement s'effectue bien et la progressebar progresse (^^) correctement au fur et à mesure.
    cepandant, Les éléments téléchargés ne s'affiche dans la listbox qu'a la fin du téléchargement et le label ne me retourne que la dernière URL utilisé et a la fin seulement aussi. Comme si une priorité avait été fixée pour le téléchargement et que le reste ne s’exécute qu'une fois celui ci terminé...


    Merci de votre aide !!

  2. #2
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Bonjour,

    Quelle ListBox ?

    Sinon, essai de mettre un Application.DoEvents() juste avant le Next.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  3. #3
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Comme évoqué par ami mactwist, tu as certainement un problème lié à la mise à jour côté UI car ta tache n'est pas asynchrone !
    Jettes un œil ICI peut-être que cela te simplifiera la vie.

    ++

  4. #4
    Membre du Club Avatar de Cybercope
    Homme Profil pro
    Programmeur amateur
    Inscrit en
    Mai 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Programmeur amateur

    Informations forums :
    Inscription : Mai 2014
    Messages : 78
    Points : 59
    Points
    59
    Par défaut
    Tout d'abord merci de vos réponses.

    mactwist69 , en effet j'ai fait une erreur dans mon code. celui ci ne fonctionnant pas avec une listebox, je l'avais remplacé par une textbox... et j'ai oublié de le modifier dans mon exemple.. Je le modifie tout de suite.

    mactwist69 merci beaucoup ! Application.DoEvent à fonctionné !

    Merci à vous deux !


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/08/2010, 12h27
  2. Réponses: 1
    Dernier message: 16/05/2007, 15h01
  3. Temps d'exécution des instructions FPU
    Par ubi dans le forum Assembleur
    Réponses: 2
    Dernier message: 24/10/2003, 19h39
  4. Mesurer le temps des instructions
    Par luckylucke dans le forum Assembleur
    Réponses: 9
    Dernier message: 03/09/2003, 22h23
  5. [TASM] Problème concernant l'instruction LGDT
    Par Ninkosen dans le forum Assembleur
    Réponses: 3
    Dernier message: 15/07/2002, 20h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo