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 6 et antérieur Discussion :

Problème de reponse du projet


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut Problème de reponse du projet
    Bonjour,

    Avant tout excusez moi du titre car je vois pas trop quoi mettre

    Alors voila je dois dans le cadre de mon Bts creer un programme qui gère une boutique.

    Un des modules de mon programme est censé envoyer des images vers mon site commercial (en FTP) hébergé par lycos

    Mon programme créer un script php qui prend toutes les données de ma base et l'envoi sur mon site

    Mon problème est que lorsque j'envoi mes images en ftp, le programme ne répond plus, il éxécute le code et ne repond que lorsqu'il a terminé l'envoi. Pas pratique...

    j'aimerai trouver une solution pour que l'utilisateur ne fasse pas planter l'appli en cliquant partout lors de l'envoi

    Un peu de code (sinon ce serait pas marrant)

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
        'Internet _ok permet d'ouvrir une connexion à internet
        internet_ok = InternetOpen("PutFtpFile", 1, "", "", 0)
     
        If internet_ok = 0 Then
            MsgBox "connection internet impossible"
            Exit Sub
        End If
        '******************
     
        'connexion au site ftp
     
        ftp_ok = InternetConnect(internet_ok, adresdest, port, ident, pass, 1, &H8000000, 0) 'mode passif
     
        If ftp_ok = 0 Then
            MsgBox "connection au site " & adresdest & " impossible"
            Exit Sub
        End If
        '***********************************
     
        'trouve le répertoire recepteur
        select_rep = FtpSetCurrentDirectory(ftp_ok, "/Photos_Articles/")
     
        If select_rep = 0 Then
            MsgBox "impossible de trouver le répertoire " & "/Photos_Articles/"
            Exit Sub
        End If
     
        i = 1
     
        Do
     
            MSHF_Fichiers.Row = i
            MSHF_Fichiers.Col = 0
            fichiersour = Txt_chemin.Text & "\" & MSHF_Fichiers.Text
            nomfich = MSHF_Fichiers.Text
     
            'transférer le fichier
            succes = FtpPutFile(ftp_ok, fichiersour, nomfich, &H1, 0)  'ascii
     
            If succes Then
                result = result & Chr(10) & nomfich & " a été transféré sur " & Txt_chemin.Text
            Else
                result = result & Chr(10) & nomfich & " n'a pas pu être transféré"
            End If
            i = i + 1
        Loop Until i = MSHF_Fichiers.Rows
        '******************************
            'fermer les pointeurs, ménage
            InternetCloseHandle ftp_ok
            InternetCloseHandle internet_ok
     
        'annoncer le résultat de l'opération
        If result <> "" Then
            MsgBox result
        Else
            MsgBox "aucun fichier transféré"
        End If
    Je suppose que la solution se trouve dans ma boucle mais quel code?? question à cent balles

    Merci d'avance

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour,
    Rends donc ton interface invisible pendant la durée du transfert, en affichant une Form d'attente inerte.
    Restitue l'affichage in fine.

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Merci de ton intervention,

    Oui ça m'a plutôt l'air bien, mais est ce que le code continuera de s'éxécuter si avant ma boucle je la rend invisible?
    est ce plutot form.hide ou form.visible=false

    J'ai testé ça mais quand il a fini il me renvoi aucune feuille et quand il s'éxécute
    ma form d'attente s'affiche mal

    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
     
    F_Envoi.Visible = False
        F_Attente.Show
        Do
            MSHF_Fichiers.Row = i
            MSHF_Fichiers.Col = 0
            fichiersour = Txt_chemin.Text & "\" & MSHF_Fichiers.Text
            nomfich = MSHF_Fichiers.Text
     
            'transférer le fichier
            succes = FtpPutFile(ftp_ok, fichiersour, nomfich, &H1, 0)  'ascii
     
            If succes Then
                result = result & Chr(10) & nomfich & " a été transféré sur " & select_rep
            Else
                result = result & Chr(10) & nomfich & " n'a pas pu être transféré"
            End If
            i = i + 1
        Loop Until i = MSHF_Fichiers.Rows
        '******************************
            'fermer les pointeurs, ménage
            InternetCloseHandle ftp_ok
            InternetCloseHandle internet_ok
        F_Envoi.Visible = True
        F_Attente.Hide

  4. #4
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Essaye avec DoEvents après le FrmAttente.show
    Sinon tu peux mettre un petit timer pour laisser le temps à la feuille d'attente de s'afficher.

    Y'a aussi la solution de rendre ta feuille Enabled = False pendant ton process, l'utilisateur pourra toujours cliquer dessus, ça fera rien. tu la remet enabled = true à la fin bien sûr
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut ^^
    Merci beaucoup à vous deux pour votre aide

    J'ai enfin ma petite application qui fonctionne

    Avec ça je m'aurais mon BTS

    Merci

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

Discussions similaires

  1. [RCP] problème pour exporter le projet
    Par david06600 dans le forum Eclipse Platform
    Réponses: 11
    Dernier message: 14/11/2007, 16h46
  2. [IIS] problème de création un projet Web
    Par kouta20 dans le forum IIS
    Réponses: 20
    Dernier message: 02/05/2007, 17h10
  3. [VB6]problèmes pour executer mon projet en VB
    Par Walowalo dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/04/2006, 19h27
  4. Problême après compilation du projet !
    Par Osiris26 dans le forum Access
    Réponses: 3
    Dernier message: 01/11/2005, 00h45
  5. Réponses: 4
    Dernier message: 08/09/2005, 11h41

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