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 :

[FMX] Capturer l'événement OnClick


Sujet :

Delphi

  1. #1
    Membre éprouvé
    Avatar de Aooka
    Homme Profil pro
    Scripting Powershell & Wlangage
    Inscrit en
    Juillet 2015
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Scripting Powershell & Wlangage

    Informations forums :
    Inscription : Juillet 2015
    Messages : 225
    Points : 1 093
    Points
    1 093
    Par défaut [FMX] Capturer l'événement OnClick
    Bonjour,


    Je cherche à savoir s'il est possible de savoir (belle répétition) quand est-ce que l'événement OnClick est appelé à l'aide d'un booléan. En gros faire un truc du genre if Button.OnClick = True then. Est-ce possible ? J'ai testé IsPressed mais sa ne marche pas du tout.


    Merci.

  2. #2
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 483
    Points : 2 734
    Points
    2 734
    Billets dans le blog
    10
    Par défaut
    Un événement Onclick est un événement secondaire construit pas un mouseDown suivi d'un mouseUp dans un temps donné donc tu peux initialiser une variable temp à 'now' dans le mouseDown et mesurer le temps passé dans le mouseUp du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    .. 
      MomentClic := now;
    ..
      if (now - MomentClic) * 1000000 < 3.5 then
    ...

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 100
    Points : 118
    Points
    118
    Par défaut
    Bonjour,
    je crois que ça peut se faire en utilisant une variable tboolean ' mvar' déclarée public ,
    initialisez à false cette variable au niveau de l'activation de la forme et modifiez la à true au niveau de l'évenement onactivate de l'objet en question.

    // Déclaration d'une variable publique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ...
    type
      TForm1 = class(TForm)
        procedure FormClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        mvar : tboolean;
    end;
    // initialisation à FALSE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     ...
    procedure TForm1.FormActivate(Sender: TObject);
    begin
      mvar := false;
    end;
    // il y a eu un click
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    procedure TForm1.objetClick(Sender: TObject);
    begin
      mvar := true;
    end;
    ...
    ...
    Bonne continuation

  4. #4
    Membre éprouvé
    Avatar de Aooka
    Homme Profil pro
    Scripting Powershell & Wlangage
    Inscrit en
    Juillet 2015
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Scripting Powershell & Wlangage

    Informations forums :
    Inscription : Juillet 2015
    Messages : 225
    Points : 1 093
    Points
    1 093
    Par défaut
    Je regarde tout ça lundi !
    Merci de vos réponses.

    Et sinon camatchou je pense que se serait plus sécuritaire de mettre la variable en private et je pense que tu voulais dire boolean et pas tboolean


    La bonne soirée,

  5. #5
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par Martin Lestas Voir le message
    Je cherche à savoir s'il est possible de savoir (belle répétition) quand est-ce que l'événement OnClick est appelé à l'aide d'un booléan. En gros faire un truc du genre if Button.OnClick = True then. Est-ce possible ?
    La formulation alambiquée et sibylline de votre question aurait plus à la Pythie de l'oracle de... Delphes !

    Si vous voulez juste mémorisé qu'on a cliqué sur le bouton au moins une fois durant la vie de la fiche, la solution de camatchou est la bonne (attention aux nommages de méthodes qui diffèrent entre la partie interface et la partie implementation) ainsi que votre remarque subséquente.

    Sinon, il va falloir être plus explicite...

    Citation Envoyé par Martin Lestas Voir le message
    J'ai testé IsPressed mais sa ne marche pas du tout.
    Car ce n'est pas du tout prévu pour ça, et l'aide est pourtant (cette fois) claire :
    (FMX.StdCtrls.TButton.IsPressed hérite de FMX.StdCtrls.TCustomButton.IsPressed. Tout le contenu en-dessous de cette ligne se réfère à FMX.StdCtrls.TCustomButton.IsPressed.)

    Spécifie si l'état par défaut de ce bouton est enfoncé.

    Définissez la propriété IsPressed sur True pour forcer l'état par défaut de ce bouton à "enfoncé". Le bouton revient à son état initial relâché une fois que vous avez cliqué dessus.

    Conseil : La définition de la propriété IsPressed n'a d'effet que si la propriété StaysPressed est définie sur True.
    Rien à voir donc avec l'évènement "clic"...
    Philippe.

  6. #6
    Membre éprouvé
    Avatar de Aooka
    Homme Profil pro
    Scripting Powershell & Wlangage
    Inscrit en
    Juillet 2015
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Scripting Powershell & Wlangage

    Informations forums :
    Inscription : Juillet 2015
    Messages : 225
    Points : 1 093
    Points
    1 093
    Par défaut
    Je vais utiliser la solution de camatchou du coup, un peu modifié dans mon cas mais c'est la bonne réponse. Résolu.

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

Discussions similaires

  1. Erreur avec l'évènement OnClick de ListView
    Par xenos dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/03/2006, 15h54
  2. Pb de capture d'évènement dans un JTextArea!
    Par scooby09 dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 18/03/2006, 22h24
  3. Réponses: 5
    Dernier message: 21/12/2004, 13h00
  4. Capturer l'évènement onPaint d'un TLabel
    Par nicolos dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/11/2004, 19h45
  5. Modification de l'évènement OnClick
    Par MrJéjé dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2002, 13h52

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