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 :

[W27] Bulle d'aide dans champ zone répétée


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut [W27] Bulle d'aide dans champ zone répétée
    Bonjour,

    J'ai un petit problème concernant l'affichage d'une bulle d'aide sur des champs contenus dans une zone répétée. Pour compliquer un petit peu la chose, cette zone répétée se trouve dans une fenêtre interne et il y a plusieurs fenêtres internes sur mon écran (cf image ci-dessous).

    En début de tests, les bulles d'aides ne s'affichaient que si je cliquais dans un champ pour passer en mode 'Edition'. J'ai donc réalisé toute une série de tests et fonction pour essayer d'afficher ces bulles d'aide sans devoir être en mode édition. j'ai donc réaliser des opérations sur des événements tels que survol_souris, etc. L'idée étant que je donne le focus à ma fenêtre interne sur le survol de cette dernière mais me suis heurté sur le comment trouver son indice (peut-être avec sa position).

    Bref, ceci était avant que je ne me rende compte que l'affichage des bulles d'aide est vraiment étrange.. bug ou autre ? voici les faits :

    1. Lorsque je clique sur un champ de ma ZR se trouvant dans une entête de rupture et que je déplace ensuite sur les différents champs de cette dernière, les bulles d'aides apparaissent et son relatives au champ survolé. Systématiquement, le curseur change et indique un état d'édition (la flèche rouge indique l'emplacement de ma souris et du symbole 'Edition')
    Nom : SymboleEdition.png
Affichages : 582
Taille : 1,9 Ko

    Nom : SituationSiClicksurChamp.png
Affichages : 625
Taille : 30,3 Ko

    2. Si maintenant je ne clique pas sur un champ se trouvant dans mon entête de rupture mais sur la zone 'bleue' et que je survolais ces mêmes champs, rien ne se passait ; d'où les tentatives de donner un focus cités ci-dessus. Mais je me suis rendu compte un peu par hasard que les bulles d'aide apparaissent bien mais plus du tout en survolant les différents champs mais suivant un décalage de plusieurs centimètres sur l'axe des Y. Je suppose que cela est dû au fait des ruptures de ma ZR et pourrait être un bug.. qu'en pensez- vous ? (la flèche rouge indique l'emplacement de ma souris et du symbole 'Edition')

    Nom : SituationSiClicksurZone.png
Affichages : 582
Taille : 46,7 Ko

    Merci à tous pour votre temps

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Apparemment, la hauteur de décalage correspond à la hauteur du bandeau en haut de l'écran.

    Je crois que infoXY() mesure la position de la souris par rapport au coin juste en dessous du bandeau, et non en haut à gauche du bandeau.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Apparemment, la hauteur de décalage correspond à la hauteur du bandeau en haut de l'écran.

    Je crois que infoXY() mesure la position de la souris par rapport au coin juste en dessous du bandeau, et non en haut à gauche du bandeau.
    Ah oui bien possible... mais ce qui est étrange est que ce décalage ne se produit que lorsque un champ de ma ZR n'est pas en mode édition..
    bon, je pense qu'il n'y a pas grand chose à faire si ce n'est de soumettre évent. un rapport de bug ...

  4. #4
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 384
    Points : 9 751
    Points
    9 751
    Par défaut
    Il me semble que l'on peut dire quel est le point de référence pour infoXY()
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par Jon Shannow Voir le message
    Il me semble que l'on peut dire quel est le point de référence pour infoXY()

    Ok merci mais la problématique ensuite est qu'il faudra commencer à gérer des événements de style souris_survol ou autre et éventuellement changer le point de référence ?

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Je viens de faire un rapide test.
    Je crée une fenêtre interne avec quelques champs.
    Pour chaque champ, dans l'onglet aide, je mets un texte quelconque pour la bulle d'aide.
    Je crée une autre fenêtre
    Je mets une zone répétée dans cette fenêtre.
    Et je fais en sorte d'afficher ma fenêtre interne dans cette zone répétée.

    Je crée un bouton avec simplement une boucle pour insérer 5 lignes dans ma zone répété.

    Tout fonctionne comme il faut, sans la moindre ligne de code. Je suis en WD24, mais je ne pense pas qu'il y ait des différences à cause de ça.

    J'ai poussé le test un peu plus loin, j'ai créé une 2ème fenêtre interne,
    Et j'ai mis un bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChangeFenêtreSource(ZoneRépétée1[1].FenêtreInterne1, FenêtreInterne2  )
    Donc, je veux avoir une certaine fenetre interne pour la zone 1 de ma zone répétée, et l'autre fenetre interne pour les autres lignes.

    Ca marche, à condition de désactiver le paramètre par défaut 'Fenêtre identique pour toutes les lignes' dans la description du champ fenêtre interne.
    Et les histoires de bulles d'aide en survol fonctionnent sans problème.

    Souvent dans Windev, quand un truc ne marche pas, il ne faut pas ajouter des lignes de code... mais en enlever.

    Pour le champ
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Je viens de faire un rapide test.
    Je crée une fenêtre interne avec quelques champs.
    Pour chaque champ, dans l'onglet aide, je mets un texte quelconque pour la bulle d'aide.
    Je crée une autre fenêtre
    Je mets une zone répétée dans cette fenêtre.
    Et je fais en sorte d'afficher ma fenêtre interne dans cette zone répétée.

    Je crée un bouton avec simplement une boucle pour insérer 5 lignes dans ma zone répété.

    Tout fonctionne comme il faut, sans la moindre ligne de code. Je suis en WD24, mais je ne pense pas qu'il y ait des différences à cause de ça.

    J'ai poussé le test un peu plus loin, j'ai créé une 2ème fenêtre interne,
    Et j'ai mis un bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChangeFenêtreSource(ZoneRépétée1[1].FenêtreInterne1, FenêtreInterne2  )
    Donc, je veux avoir une certaine fenetre interne pour la zone 1 de ma zone répétée, et l'autre fenetre interne pour les autres lignes.

    Ca marche, à condition de désactiver le paramètre par défaut 'Fenêtre identique pour toutes les lignes' dans la description du champ fenêtre interne.
    Et les histoires de bulles d'aide en survol fonctionnent sans problème.

    Souvent dans Windev, quand un truc ne marche pas, il ne faut pas ajouter des lignes de code... mais en enlever.

    Pour le champ
    Wow ! merci beaucoup pour ton temps et tes tests ; je vais encore chercher de mn côté. Dans ma fenêtre interne, ma zone répétée comporte 2 ruptures ; je vais essayer d'en supprimer une pour voir si cela change qqchose.
    A part ça, l'idée d'avoir une fenêtre interne dans la zone répétée est top ; je la garde mais je ne pense pas que nous pouvons avoir une Fenêtre interne dans une zone répétée qui est elle-même inclue dans une fenêtre interne.. ce qui m'arrangerait bien
    En tout cas, merci infiniment pour ton temps et tes idées !

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Je ne vois vraiment pas pourquoi on ne pourrait pas imbriquer ... comme dans ta dernière proposition.

    J'avais mal compris, je croyais que ta configuration, c'était celle que j'ai reproduite.

    Une fenêtre interne, c'est ni plus ni moins une fenêtre normale. Dans les fenêtres internes, c'est plus sain que le code qui va manipuler tout ça soit dans la fenêtre interne elle-même. Et c'est surtout plus facile. Et dans la fenêtre qui contient cette fenêtre interne, tu auras simplement une ligne, pour appeler la bonne procédure.
    Dans l'idée, ta fenêtre interne, elle est pour l'instant dans ta fenêtre-contenant n°1, mais demain, tu pourrais tout aussi bien la réutiliser dans une fenêtre-contenant n°2, sans avoir à rien réécrire.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Je ne vois vraiment pas pourquoi on ne pourrait pas imbriquer ... comme dans ta dernière proposition.

    J'avais mal compris, je croyais que ta configuration, c'était celle que j'ai reproduite.

    Une fenêtre interne, c'est ni plus ni moins une fenêtre normale. Dans les fenêtres internes, c'est plus sain que le code qui va manipuler tout ça soit dans la fenêtre interne elle-même. Et c'est surtout plus facile. Et dans la fenêtre qui contient cette fenêtre interne, tu auras simplement une ligne, pour appeler la bonne procédure.
    Dans l'idée, ta fenêtre interne, elle est pour l'instant dans ta fenêtre-contenant n°1, mais demain, tu pourrais tout aussi bien la réutiliser dans une fenêtre-contenant n°2, sans avoir à rien réécrire.
    Il me semble que j'avais fait le test d'avoir une fenêtre interne contenant une zone répétée qui elle-même contenait une fenêtre interne et ça buggait ... mais peut-être que j'aurais dû changer mes références dans les champs affichés ; je ne sais plus exactement.

    Actuellement, tous mes traitements sont effectivement faits dans du code contenu dans ma fenêtre interne. Je passe juste en paramètre lors de la création d'un nouvelle fenêtre interne l'ID de mon enregistrement à afficher. Ensuite, sachant que toutes les données à afficher proviennent de 6 fichiers ! , je procède par requête.

    Merci pour ton aide

  10. #10
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Plutôt que des fenêtres internes as-tu tenté les modèles de champ qui sont plus faciles à manipuler.
    Il est aussi possible de mixer les deux.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Bonjour,
    Plutôt que des fenêtres internes as-tu tenté les modèles de champ qui sont plus faciles à manipuler.
    Il est aussi possible de mixer les deux.
    Merci pour la recommandation mais je dois avouer qu'étant novice en Windev, je n'ai pas encore exploré ce sujet. Mais si j'ai bien compris, le modèle de champ permet de regrouper un certain nombre de champs pour les utiliser ensuite dans différentes situations....
    Dans mon cas, je dois effectivement répéter un certain nombre de fois l'affichage de champs mais le nombre de répétitions est très variable d'où mes fenêtres internes. Ensuite à l'intérieur de mes fenêtres internes, je dois afficher des enregistrement provenant de plusieurs fichiers mais là encore, le nombre d'enregistrement varie d'où l'utilisation d'une zone répétée.

    Je ne sais donc pas si à ce niveau un modèle de champ pourrait m'apporter un plus ...

    Merci pour ton idée qu'il faudra tout de même que j'explore

Discussions similaires

  1. [WM20] Problème de champ HTML dans une zone répétée
    Par xserverx dans le forum Windev Mobile
    Réponses: 1
    Dernier message: 09/11/2015, 07h45
  2. [WM19] Champ HTML dans une zone répétée
    Par gabrielpf dans le forum Windev Mobile
    Réponses: 7
    Dernier message: 19/12/2014, 15h42
  3. [WD17] Réaffichage des champs SAI dans une Zone Répétée
    Par franck34matlab dans le forum WinDev
    Réponses: 11
    Dernier message: 25/06/2014, 12h30
  4. [WD15] Champs Graphe dans une Zone Répétée
    Par Grmmml dans le forum WinDev
    Réponses: 4
    Dernier message: 15/04/2010, 10h12
  5. [WD12] Affichage dans une zone répétée
    Par stephpns dans le forum WinDev
    Réponses: 7
    Dernier message: 05/06/2008, 12h49

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