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 :

Boîte de dialogue "Ouvrir" en arrière-plan


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Boîte de dialogue "Ouvrir" en arrière-plan
    Bonjour,

    Je suis nouveau venu sous vb6 et ma question doit être triviale.

    J'ouvre une application Excel (App_Xl) à partir d'un Form. Je renseigne un contrôle Text de ce Form par la méthode App_Xl.GetOpenFileName en l'activant par un bouton (Cmd_Browse).
    Il s'avère que :
    1) la boîte de dialogue "Ouvrir" résultante a la facheuse tendance de s'ouvrir en arrière-plan de toutes mes fenêtres déjà ouvertes ainsi que du Form en cours d'exécution. Cette boîte de dialogue n'étant pas un objet de la collection Windows de App_Xl, je ne peux donc pas la gérer comme telle.
    2) D'autre part, la navigation entre le Form et la fenêtre "Ouvrir" est possible mais génère une erreur "Component Request Pending" dont je conçois tout à fait l'origine mais que j'aimerais tout de même éviter. A savoir que même après avoir fait disparaître la fenêtre "Ouvrir" (choix de fichier ou annulation), cette erreur se répète parfois. Je dois alors tuer mon exécutable puisqu'il ne reste plus que lui et qu'il n'a plus la main.

    Enfin, j'ai remarqué que si je déclare App_Xl en variable locale (c'est à dire directement sous Cmd_Browse_Click()), cela fonctionne. Mais je ne suis pas vraiment avancé.

    Alors comment puis-je mettre ma fenêtre "Ouvrir" en surface ? Et comment sont gérées/gérables les boîtes de dialogues que l'on fait apparaître ?

    Voili, merci de vos réponses.

  2. #2
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Pourquoi ne pas utiliser le commondialog control tout simplement ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Quand je tente d'ajouter ces contrôles dans mes références, il me signifie que : "Name conflicts with existing module, project, or object library". Et ce, même après avoir retiré toutes les autres références.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Je me suis finalement résigné à créer l'objet "Excel.Application" au sein même de la procédure où j'appelle la méthode GetOpenFileName.
    Et je vérifie bien qu'en créant l'application dans toute autre procédure, la méthode fonctionne mal. Encore plus démoniaque : si deux procédures appellent cette méthode, il suffit que l'application ait été ouverte dans une des deux procédures pour que la méthode fonctionne.
    Si quelqu'un sait pourquoi ...

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

Discussions similaires

  1. [PHPExcel] Boîte de dialogue Fichier/Ouvrir
    Par bentah dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 14/09/2012, 14h44
  2. Réponses: 0
    Dernier message: 28/11/2007, 10h12

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