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

Composants VCL Delphi Discussion :

[TCheckBox] Neutraliser l'action


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 83
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2002
    Messages : 172
    Points : 101
    Points
    101
    Par défaut [TCheckBox] Neutraliser l'action
    Bonjour,

    J'utilise un TcheckBox,
    le fait de cocher ou décocher déclanche un événement click. Normal.

    j'aimerais pouvoir cocher ou décocher SANS entraîner cet événement:
    quelqu'un pourrait-il m'indiquer la commande correspondante que je ne trouve nulle part ?
    Merci
    Amicalement
    Lucien

  2. #2
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Cette méthode n'existe pas. Mais si ce que tu cherche est de pouvoir modifier l'état du CheckBox par code sans utiliser ton gestionnaire d'évènement, alors tu peux procéder comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    procedure TMaForm.OnCheckBox1Click(Sender: TObjetc);
    begin
      if CheckBox1.Focused then
      begin
        // Ton code de gestion de l'évènement
      end;
    end;
    Le fait de vérifier que le composant a la focalisation de permet d'être quasiment sûr que c'est l'utilisateur qui a déclenché l'action.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 83
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2002
    Messages : 172
    Points : 101
    Points
    101
    Par défaut
    Merci Pierre, tu m'as déjà fait connaître des tas de choses, tu sais ce prof...retraité....

    Je retiens ton info, mais elle ne semble pas résoudre ma difficulté:

    j'ai besoin que le gestionnaire d' événement réponde au click de l'utilisateur mais j'ai aussi besoin de changer la case sans entraîner l'utilisation du gestionnaire...

    Pas simple le Lucien...
    ou mon analyse insuffisante...ne l'ai-je pas déjà dit à d'autres...
    Amicalement
    Lucien

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 50
    Points : 61
    Points
    61
    Par défaut
    salut,

    essai en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CheckBox1.OnClick := nil;
    ... code de modif checkbox
    CheckBox1.OnClick := CheckBox1Click;

  5. #5
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    C'est bien ce que j'avais compris... Mais peut-être que tu devrait clarifier ta question. Quand tu dis
    mais j'ai aussi besoin de changer la case sans entraîner l'utilisation du gestionnaire...
    Tu parle de changer l'état de la propriété Checked en cliquant dessus ou par code?
    Par clic : dans ce cas, tu dois avoir dans ton programme une info te permettant de savoir si le code du gestionnaire doit être exécuté ou non.
    Par code : la méthode que je t'ai donné correspond à ce cas précis. Le code du gestionnaire d'évènement n'est exécuté que si le TCheckBox a la focalisation. Ce qui peut se traduire (dans 99.99% des cas) par un clic de l'utilisateur.
    Dans tous les cas, un simple test te permet de déterminer si le code du gestionnaire doit ou non être exécuté.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 83
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2002
    Messages : 172
    Points : 101
    Points
    101
    Par défaut [RESOLU] TcheckBox
    Merci Pierre,

    J'ai deux situations:
    la première classique, l'utilisateur agit sur la case, le gestionnaire d'événement est déclanché, l'action exécutée.

    la seconde, l'utilisateur utilise le PopMenu, l'opération est exécutée
    sans la modification de la case, normal; voici ma difficulté: si j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     checkbox1.checked:=false;
    le gestionnaire est de nouveau déclanché, normal mais pas souhaité du tout!

    La réponse de Thierry ( qu'il en soit remercié) résout la difficulté,
    pour rendre le code plus général , je sauve l'événement onclick, je l'annule, modifie la case et restaure l'événement comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        oldclic:=ckbAutreDisque.OnClick;
        ckbAutreDisque.OnClick:=nil;
        ckbAutreDisque.Checked:=true;
        ckbAutreDisque.OnClick:=OldClic;
    Un grand merci à tous deux
    Amicalement
    Lucien

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

Discussions similaires

  1. action APRES chargement complet ...
    Par PinGuy dans le forum Delphi
    Réponses: 7
    Dernier message: 06/07/2006, 17h16
  2. [Flash MX] Action sur un bouton
    Par WriteLN dans le forum Flash
    Réponses: 9
    Dernier message: 20/10/2003, 14h01
  3. [Struts1.1] Poster un champ vers 2 actions différentes
    Par devtele dans le forum Struts 1
    Réponses: 6
    Dernier message: 17/09/2003, 14h14
  4. [Syntaxe] Action simultanée sur plusieurs élements
    Par FranT dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/03/2003, 20h20

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