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 communication entre interfaces VB6


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingé
    Inscrit en
    Août 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingé
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Problème de communication entre interfaces VB6
    Bonjour,

    Je connais assez mal VB6. Je pratique plutôt le VBA d'ordinaire. N'étant pas informaticien, je développe simplement de petits outils pour automatiser certains traitement ou simuler des étapes de process de façon itérative. Aujourd'hui, on me demande de développer une application un peu plus vaste et un peu mieux protéger afin que le code ne soit pas visible/modifiable par l'utilisateur. C'est pourquoi, je me dis que la solution VB6 avec la génération d'un exécutable peut être une bonne solution.

    J'ai donc importer la version VBA sous VB6, j'ai refait mes "Form" puisque je n'arrivais pas à les utiliser sous VB6. Elles apparaissaient en tant que "Concepteur" et non de "Feuilles". Y a-t-il d'ailleurs une solution pour pouvoir utiliser directement des forms réalisées sous VBA en VB6 ?

    Mon problème majeur et pour lequel je vous sollicite vient du fait que j'ai plusieurs interfaces :
    • Une interface principale qui me sert à configurer ma simulation
    • 2 autres interfaces secondaires qui doivent apparaître si et seulement si l'option correspondant à celle-ci est sélectionnée dans la première interface. L'utilisateur doit alors préciser un paramètre de sa configuration sur l'interface secondaire qui apparaît

    Sous VBA, cela fonctionne parfaitement. C'est à dire, je choisis mes 1ères options, le code se déroule. J'ai une ligne de code qui est :

    InterfaceX.Show

    L'interface idoine apparaît et le code se stoppe en attendant que l'utilisateur sélectionne son option puis clique sur OK ou Cancel.

    Sous VB6, l'interface apparaît mais le code ne se stoppe pas. C'est à dire qu'il affiche l'interface mais passe directement à la ligne suivante et enchaîne.

    Est-ce que j'ai raté une commande à ajouter avant ou après le .Show ou bien y a-t-il quelque chose à faire au niveau de la conception de mes formes ?

    Si je déroule le code en pas à pas et que je le bloque sur l'instruction .Show, l'interface apparaît mais je n'ai pas le contrôle dessus. Je ne peux par exemple pas cocher mes check box ou inscrire des valeurs dans les Textbox.

    Je ne suis pas sûr d'avoir été très clair. N'hésitez pas à me demander des renseignements si besoin.

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 417
    Points : 5 816
    Points
    5 816
    Par défaut
    Sous VB6, l'interface apparaît mais le code ne se stoppe pas. C'est à dire qu'il affiche l'interface mais passe directement à la ligne suivante et enchaîne.
    Est-ce que j'ai raté une commande à ajouter avant ou après le .Show ou bien y a-t-il quelque chose à faire au niveau de la conception de mes formes ?
    Dans le code de l'interface principale, il devrait y avoir une condition sur l'option à choisir dans l'événement "Click" des boutons d'option (OptionButton) ou des cases à cocher(CheckBox). Cette condition doit faire attendre l'exécution du code jusqu'à ce qu'on choisisse un traitement à faire.
    Un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) ' Public s'il s'agit d'un module de base .bas ou Private s'il s'agit d'un objet Form
    ' Quelque part dans le code, on peut utiliser :
    Do
     Sleep 100
    Loop Until Option1.Value = True Or Option2.Value = True

  3. #3
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 624
    Points
    16 624
    Par défaut
    Salut l_autodidacte et VBAG38

    Citation Envoyé par VBAG38
    ....
    InterfaceX.Show
    L'interface idoine apparaît et le code se stoppe en attendant que l'utilisateur sélectionne son option puis clique sur OK ou Cancel.
    ....
    Si c'est dans InterfaceX que doit se faire un choix et ne pouvoir quitter cette InterfaceX que par OK ou Cancel, il faut paramétrer l'ouverture de InterfaceX au monument de son ouverture.
    Show, méthode
    object.Show style, ownerform
    ....
    style Facultatif. Nombre entier qui détermine si la feuille est modale ou non modale. Si l'argument style a pour valeur 0, la feuille est non modale ; s'il a pour valeur 1, elle est modale.

    ownerform Facultatif.Expression de chaîne qui spécifie quel composant "possède" la feuille affichée. Pour les feuilles standard Visual Basic, utilisez le mot clé Me.
    Donc pour toi InterfaceX.Show 1, Me le code suivant le Show du Form qui l'a lancé ne reprend qu'après la fermeture du Form lancé.

    La bible du programmeur Visual Basic 6 et VBScript - MSDN

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Ingé
    Inscrit en
    Août 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingé
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Donc pour toi InterfaceX.Show 1, Me le code suivant le Show du Form qui l'a lancé ne reprend qu'après la fermeture du Form lancé.

    La bible du programmeur Visual Basic 6 et VBScript - MSDN
    Merci beaucoup ProElegT pour ton conseil. Cela fonctionne. Je ne connaissais par. Merci également pour le lien, je vais essayer de trouver les réponses à mes futures questions dedans avant de revenir demander de l'aide au forum.

    A tout hasard, dans mon appli VBA, j'utilise la méthode Find qui ne semble pas exister en VB6. Vous ne connaîtriez pas l'équivalent par hasard ?

    Merci encore.

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

Discussions similaires

  1. [RMI] Problème de communication entre deux machines distantes
    Par georges_jung dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 10/04/2007, 18h03
  2. [c#] probléme de communication entre classe
    Par OpenGG dans le forum C#
    Réponses: 1
    Dernier message: 24/09/2006, 21h54
  3. Problème de communication entre php et Laszlo(Tomcat)
    Par YUN59 dans le forum Autres langages pour le Web
    Réponses: 1
    Dernier message: 21/07/2006, 13h45
  4. Problème de communication entre C# et ASP
    Par Prowlx dans le forum ASP
    Réponses: 1
    Dernier message: 19/07/2006, 17h37
  5. Problème de communications entre threads
    Par maya09 dans le forum Windows
    Réponses: 1
    Dernier message: 22/02/2006, 22h18

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