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

WinDev Discussion :

mettre la fenêtre Info() ou OuiNon() en avant plan [WD18]


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 103
    Points : 76
    Points
    76
    Par défaut mettre la fenêtre Info() ou OuiNon() en avant plan
    Bonjour,

    je lance une fenêtre Info() (ou OuiNon()) à la fin d'une procédure globale qui est exécutée en tâche de fond, et à chaque fois l'Info() est en arrière plan cachée derrière ma fenêtre appelante. Du coup, l'utilisateur croit être coincé !

    Comment faire pour mettre la fenêtre Info() en avant plan ?

    merci de votre aide,

    Gilbert.
    Merci de votre aide.
    Gilbert.

  2. #2
    R&B
    R&B est déconnecté
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2005
    Messages : 571
    Points : 1 263
    Points
    1 263
    Par défaut
    Bonjour

    Vous rencontrez un problème de conception.
    En effet les procéssus ne doivent généralement pas intervenir sur l'IHM...
    et donc la procédure globale appelée en tâche de fond (autrement dit en processus) ne doit pas poser de question.

    Une solution est cependant possible pour 'contourner' ce que vous décrivez : ExecuteThreadPrincipal

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 103
    Points : 76
    Points
    76
    Par défaut
    Oui vous avez raison, mais cette procédure globale est en fait executée en tache de fond par un thread secondaire ; elle reçoit des données d'un équipement externe et doit demander un avis à l'utilisateur sur la réception d'un caractère.
    Je ne suis pas certain que ExécuteThreadPrincipal() puisse m'aider dans ce cas. Si oui, comment où mettre la fonction appelée ? dans une procédure de la fenêtre à l'écran à ce moment là ?

    merci de votre aide

    Gilbert
    Merci de votre aide.
    Gilbert.

  4. #4
    R&B
    R&B est déconnecté
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2005
    Messages : 571
    Points : 1 263
    Points
    1 263
    Par défaut
    Bonjour

    La lecture de l'aide de la fonction indique que le thread peut exécuter une procédure qui aura lieu dans le thread principal...
    Ainsi donc, vous allez avoir besoin de procédures appelables par votre thread et donc de même portée pour vos maj d'IHM ou en l'occurrence votre question.
    Ainsi le OuiNon devra se situer dans une procédure globale appelée par votre thread via TheadExecutePrincipal...
    Il devrait s'opérer en superposition souhaitée et retourner son résultat dans le thread.

    Comment indiquer plus clairement que le OuiNon doit être encapsulé dans cette procédure ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 103
    Points : 76
    Points
    76
    Par défaut
    Parfait. merci pour votre réponse. ça fonctionne bien maintenant avec le bémol que bien sûr la fonction est bloquante pour les affichages (demandés par les autres Threads) de la fenêtre en arrière plan.

    Mais ça m'ira bien comme ça pour l'instant.

    merci encore,

    Gilbert
    Merci de votre aide.
    Gilbert.

  6. #6
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour

    C'est bloquant car ta boite de dialogue (info) est ouverte en modale : utilise OuvreFille sur la fenêtre d'info

    Si tu as demandé à ce que le gabarit soit appliqué sur les fenêtres système la fenêtre WinDevMessageBox a été ajoutée à ton projet
    Dans ce cas un simple OuvreFille(WinDevMessageBox... suffit (voir les paramètres dans cette fenêtre)

    Tu peux aussi faire ta propre fenêtre d'affichage d'informations et la personnaliser comme tu veux

    Dans ton traitement pense à vérifier que cette fenêtre n'est pas déjà ouverte pour éviter d'en empiler à l'infini

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

Discussions similaires

  1. Mettre une fenêtre en avant sur une interface VB
    Par khelilo dans le forum VB.NET
    Réponses: 3
    Dernier message: 07/03/2013, 13h49
  2. [WD16] mettre Info() en avant plan ?
    Par ihih45 dans le forum WinDev
    Réponses: 7
    Dernier message: 27/07/2011, 09h24
  3. Mettre une fenêtre en avant plan
    Par nu_tango dans le forum Langage
    Réponses: 0
    Dernier message: 17/09/2010, 04h14
  4. Réponses: 3
    Dernier message: 01/12/2006, 08h34
  5. [API Windows] Mettre une fenêtre à jour
    Par Zazeglu dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 22/01/2004, 15h48

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