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 :

Gestion double traitement sélection et double-clique


Sujet :

WinDev

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 126
    Points : 73
    Points
    73
    Par défaut Gestion double traitement sélection et double-clique
    Bonjour à tous,

    Dans une table, j'ai un traitement sur sélection d'une ligne, et un traitement sur double clique.
    Lorsque j'effectue un double-clique, le traitement sur sélection est effectué en même temps (un peu avant forcément, même si la ligne est déjà sélectionnée) surement dans un thread parralèle (géré par windev) et perturbe donc le traitement de mon double-clique.

    Pour l'instant la seule solution que j'ai trouvé pour palier au problème est de mettre une temporisation au début de mon traitement double-clique. Mais le soucis c'est que le temps de traitement de "sélection" varie d'une machine à l'autre. Donc je suis obligé de mettre une tempo importante (1 sec..), sans certitude que cela ne buggera pas un jour sur une machine très lente. Et bien entendu cela créé un lag non désirable lors du double-clique.

    Est ce qu'il y a un moyen d'attendre la fin d'un traitement avant d'en lancer un autre ? ou vais-je être obligé de passer par des threads, en lançant un thread spécifique lors de la sélection, et un autre lors du double clique qui attendra que le 1er soit terminé ?

  2. #2
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 126
    Points : 73
    Points
    73
    Par défaut
    Après d'autres tests je viens de me rendre compte qu'en réalité c'est encore plus vicieux !!

    Lorsque je fait un double clique, windev execute le traitement, et ce traitement met à jour la table et sélectionne une ligne. Lors du double-clique la souris est positionnée sur une ligne, et après le traitement la souris ne bouge pas mais elle est positionnée sur une autre ligne car la table a changé. Et bien cette nouvelle ligne est sélectionnée automatiquement !! comme si un clique était effectué après le double-clique.
    Cela ne se produit pas si je met une tempo à la fin du traitement "double-clique".

    en fait on dirait que windev mémorise qu'il y a un simple clique avant le double clique. Puis il effectue le traitement double-clique, et enfin il effectue le traitement simple-clique....

  3. #3
    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
    - De déplacer dans la table lors du traitement sur une ligne est une source d'erreur.
    - Effectivement le doubleclic lance la sélection.
    Afin de palier à ce problème il vous est possible de ne pas réagir en sélection si le traitement en cours est celui du doubleclic.
    Utilisez une variable globale de votre fenêtre sont la valeur sera fixée et annulée en début et fin de traitement du double clic. Vous serez alors en mesure de l'évaluer dans le traitement de sélection et séparer vos traitements.

  4. #4
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 126
    Points : 73
    Points
    73
    Par défaut
    Bonjour,

    - Ce n'est pas vraiment un déplacement, en fait le double clique réinitialise la fenêtre et exécute différents traitements, filtre la table puis re-sélectionne la ligne sur laquelle on avait double-cliquer
    - Votre solution ne fonctionne pas pour plusieurs raisons. Le traitement "sur sélection" est en fait exécuté avant le traitement double-clique ET après. Donc même si je positionne une variable globale elle sera modifié après que le traitement sélection soit effectué. Et à la fin de mon traitement double-clique, lorsque je réinitialiserai la variable globale, il y aura le second clique qui va relancer le traitement "sur sélection" ...

    Le soucis vient du fait que le traitement double-clique n'est pas lié à une ligne mais à la table. Donc windev voit d'une part un double-clique, et d'autre part, si le double-clique est fait sur une ligne, il voit 2 sélections de ligne. Il va donc lancer les 3 traitements les uns après les autres dans l'ordre d'apparition soit "sélection","double-clique" puis "sélection"

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 126
    Points : 73
    Points
    73
    Par défaut
    Bonjour à tous,

    Je revient après pas mal de test j'ai enfin trouvé la source du problème. C'est liè à la sélection multiple....
    Si vous activez la sélection multiple sur une table, lorsque vous cliquez sur une ligne plusieurs fois le code "sélection d'un ligne" s'active à chaque fois (avec un clic gauche).
    Si vous faites un double clic, dans l'orde se lance : le code "sélection..", le code "double clic", puis le code "sélection.." à nouveau...

    En sélection simple bien entendu le fonctionnement est normal donc si vous double cliquez le code "double clic" se lance, si vous cliquez sur une ligne plusieurs fois le code "sélection.." ne se lance que la 1ere fois (si changement de ligne, donc fonctionnement logique/normal).

    Pour contrer cela soit on fait une bidouille avec des variables globale et/ou des tempo, soit on désactive la sélection multiple ...

    A votre avis, ce "problème" qui apparait en sélection multiple est-ce un bug ou le fonctionnement "normal" ?

Discussions similaires

  1. Sélection avec double clic
    Par cmail dans le forum IGN API Géoportail
    Réponses: 4
    Dernier message: 23/04/2012, 10h36
  2. [WS 2008 R2] schtasks => Double traitement
    Par Ricks31 dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 05/04/2012, 10h29
  3. sélection par double groupement
    Par thomas0211 dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/09/2011, 14h22
  4. [QtCore] Traitement d'un double clic sur un item
    Par apclinux dans le forum PyQt
    Réponses: 1
    Dernier message: 22/03/2011, 15h00
  5. [TWebBrowser] Sélection et double-clic
    Par sfpx dans le forum Composants VCL
    Réponses: 7
    Dernier message: 31/07/2005, 22h12

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