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 FMX Delphi Discussion :

Event OnKeyDown et Android


Sujet :

Composants FMX Delphi

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2021
    Messages : 164
    Points : 187
    Points
    187
    Par défaut Event OnKeyDown et Android
    Bonjour,

    J'ai un soucis sur les Events OnKeyDown / OnKeyUp avec Android, lorsque j'appuie sur une touche, l'évènement ne se déclenche pas, sauf avec les touches spéciales (ex quand je valide la saisie ou supprime une lettre).

    J'ai créé un nouveau projet vierge avec un Edit pour être sur, sur Windows et IOS ça fonctionne, il n'y a que sous Android (Android 11 dans mes tests) que l'évènement n'est pas exécuter.

    Dans un autre post j'ai vu qu'il faudrait override le onKeyUp mais la j'avoue que ce n'est pas dans mes habitudes de faire ça, je suis assez perdu .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    unit Unit1;
     
    interface
     
    uses
      System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
      FMX.Controls.Presentation, FMX.Edit;
     
    type
      TForm1 = class(TForm)
        Edit1: TEdit;
        procedure Edit1KeyDown(Sender: TObject; var Key: Word; var KeyChar: Char;
          Shift: TShiftState);
        procedure Edit1KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
          Shift: TShiftState);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.fmx}
     
    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; var KeyChar: Char;
      Shift: TShiftState);
    begin
      ShowMessage('KeyDown');
    end;
     
    procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
      Shift: TShiftState);
    begin
      ShowMessage('KeyUp');
    end;
     
    end.

  2. #2
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 614
    Points
    3 614
    Par défaut
    Bonjour

    Tu es sur un champ de saisie avec le clavier virtuel ou utilises un clavier bluetooth sur ton appareil et aimerais intercepter les touches en dehors des champs de saisies ou composants ayant le focus ?

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2021
    Messages : 164
    Points : 187
    Points
    187
    Par défaut
    C'est un champ de saisie avec le clavier virtuel et je veux intercepter les touches seulement si le composant à le focus.

    En fait je m'en sers pour faire de la saisie semi automatique quand l'utilisateur saisie une heure (1212 devient 12:12) je me doute qu'il doit y avoir plus simple que le OnKeyDown, mais j'avoue que le sujet me rend curieux, même si, si je n'ai pas trouvé de sujet similaire, c'est surement que comme d'habitude il y a un détail de base qui m'échappe ^^.

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 877
    Points : 11 366
    Points
    11 366
    Billets dans le blog
    6
    Par défaut
    Bonsoir,
    Quid d'utiliser le TEdit.OnChange ?

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2021
    Messages : 164
    Points : 187
    Points
    187
    Par défaut
    J'ai essayé ! L'évènement se déclenche lorsque l'Edit perd le focus ou que je valide la saisie, mais je pense que c'est ce que je vais faire en finalité : traiter le texte final une fois que l'utilisateur à fini de saisir, mais ça sera moins propre

  6. #6
    Membre du Club Avatar de hector94
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 56
    Points : 55
    Points
    55
    Par défaut
    OnChangeTracking doit être l'événement à utiliser

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2021
    Messages : 164
    Points : 187
    Points
    187
    Par défaut
    OnChangeTracking doit être l'événement à utiliser
    Effectivement tout fonctionne correctement maintenant, merci !

    NB : il faut tout de même faire attention car OnChangeTracking ne réagit pas de la même façon sous Android ou IOS, de quoi s'emmêler les pinceaux

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/01/2022, 17h58
  2. Android studio Java CalenderView - Events
    Par syanis94 dans le forum Développement Mobile en Java
    Réponses: 0
    Dernier message: 17/02/2021, 18h14
  3. [Associé] Application Sociale & Event cherche son développeur [iOS/Android]
    Par Odysseapp dans le forum Autres
    Réponses: 0
    Dernier message: 03/05/2017, 12h57
  4. Accès à une case d'un DBGrid dans l'event OnKeyDown
    Par fba dans le forum Bases de données
    Réponses: 2
    Dernier message: 02/03/2004, 12h48
  5. [Applicatif]OnKeyDown
    Par psl dans le forum Langage
    Réponses: 4
    Dernier message: 28/10/2002, 15h55

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