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

Delphi Discussion :

Gestion évènements OnCellClick OnDoubleClick


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut Gestion évènements OnCellClick OnDoubleClick
    Bonsoir à tous, j'aurai voulu savoir si il est possible d'effectuer un evenement OnDoubleClick sans effectuer un évènement OnCellClick et si oui comment faire ? Merci.

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut
    Salut, je suis déçu que personne ne puisse m'apporter son aide, j'aurai pourtant pensé que c'était quelquechose d'assez basique...

    Mon problème est ke lorsque je double clique sur un enregistrement dans une DBgrid j'ai une action qui s'execute et lorsque je fé un simple click j'ai une autre action (en l'occurence l'execution d'une requête assez importante). Du coup l'action qui doit survenir suite au Double click met du temps à arriver (le temps ke la requête traitée par l'évènement simple click s'exécute), j'aurai simplement voulu savoir comment empêcher ça, c'est vraiment important et je remercie d'avance celui qui pourra m'aider...

  3. #3
    Membre confirmé Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Par défaut
    J'ai bien peur que le composant DBGrid ne soit pas concu pour traiter comme il se doit le OnDblClick.

    D'ailleurs, tu vas bien t'embeter pour savoir dans quelle cellule tu viens de faire un double clic.

    Je crois même que l'on ne passe pas dans l'évenement OnDblClick lorsqu'on double clic sur une céllule, cela se passe uniquement lorsque l'on clic sur la grille mais hors des cellule.

    Solution, tu utilise un autre procédé.

    Remarque : Si un clic sur une cellule provoque un traitement long, tu ne crois pas que l'utilisateur va être un peu gavé à force d'attendre à chaque clic...
    Le traitement tu ferais mieux de le traiter par un bouton qui se dégrise quand tu selectionnes une cellule.

    Voilà, bon courage.

  4. #4
    Membre confirmé Avatar de Morfus
    Inscrit en
    Novembre 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 93
    Par défaut
    bonjour
    jai rien compri a ta question essai de donner plus d'information

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Par défaut
    Bonjour,

    Pour tous les composants delphi le systeme est le systeme windows.

    Si je fais un double click, j'ai les événements suivants (dans l'ordre).

    Click
    click
    Doubleclick

    Si je veux eviter les 2 click avant le double click, je dois "bidouiller" un systeme a base de timer.

    sur l'évenement OnClick
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      Timer := False; // (pour reinitialiser le timer)
      Timer := True;

    sur l'évenement OnDblClick
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      Timer := False;
    .. code du bouble click
    Sur le Ontimer du timer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Evenememnt du click
    Pour l'interval du Timer j'utilise personellement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GetProfileInt('Windows', 'DoubleClickSpeed', 90) + 10; // temps du double click + 10 millisecondes
    Je sais, c'est lourd. Mais je n'ai rein trouvé d'autre

  6. #6
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Salut,

    Ce qu'il voulait dire c'est que au lieu d'utiliser un évènement OnCellClick, tu utilise un bouton qui réalise ton traitement...En gros tu essaye de modifier ta logique si possible, mais ça va sut=rtout dépendre de ce que tu souhaite faire.

    A+.

  7. #7
    Membre confirmé Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Par défaut
    Le coup du Timer peut effectivement être une bonne alternative.

    Au lieu de code, je vais compléter l'algo de Jean Francois par le principe de fonctionnement.

    • Un timer est configuré pour se déclencher toutes les secondes.
    • Et il est désactivé à sa création.
    • Lors du premier clic, tu désactive puis tu lances le timer. (RAZ)
    • Tu as alors une seconde pour refaire un clic avant que le timer rentre dans son "OnTimer".
    • Si tu reclic assez vite et que le Timer est actif, tu désactive le timer c'est un doubleclick.
    • Si le Timer déclenche son OnTimer, c'est que tu voulais cliquer qu'une seule fois. le traitement dans le OnTimer lance ton traitement long.
    Dans se fonctionnement le Timer devient une simple minuterie.

    J'ai l'impression que mon explication va t'embrouiller plus que t'aider à comprendre...

  8. #8
    Membre confirmé Avatar de mamou30
    Inscrit en
    Janvier 2007
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 118
    Par défaut Label avec un Timer
    j'ai fait un label qui bouge au long d'une fenètre de gauche a droite
    mais la vitesse n'est pas bien est ce que le problème :que j'ai utiliser deux timer en meme temps une pour un label et l'autre pour l'heure(now)

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Par défaut
    Réponse pour Mamou

    Bonjour,
    Cela peut venir des timer, ou simplement de la gestion des messages par windows.
    Essayer de fair Label.Update apres avoir modifier Label.Caption

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut
    Merci à tous pour ces réponses, évidémment j'avais penser au bouton plutôt qu'au double click mais je préferais le double click et voilais simplement savoir si c'était possible de désactiver le OnClickCell lorsqu j'effectue un OnDBClick mais vous avez répondu à ma question : CE N'EST PAS POSSiBLE sauf en jouant sur les timer (et jambonstarne t'en fais pas ton explication était très claire )

    Merci à tous de vous êtes penché sur la question et à bientôt.

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

Discussions similaires

  1. [smartphone]Gestion événement, lancer un programme
    Par goulmak dans le forum Mobiles
    Réponses: 0
    Dernier message: 09/04/2008, 12h36
  2. Librairie gestion évènements clavier
    Par Poisson_Pilote dans le forum Ada
    Réponses: 2
    Dernier message: 29/10/2007, 08h54
  3. Gestion évènements SDL dans panel wxwidgets
    Par |Psk| dans le forum SDL
    Réponses: 1
    Dernier message: 08/09/2007, 01h52
  4. [Visual Studio][MFC] Gestions évènements
    Par Mic75 dans le forum MFC
    Réponses: 6
    Dernier message: 07/06/2006, 20h03
  5. [MFC][VC++.NET]gestion évènement clavier
    Par Rafoo dans le forum MFC
    Réponses: 2
    Dernier message: 14/12/2005, 09h29

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