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 :

Annuler action de la touche TAB


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Annuler action de la touche TAB
    Bonjour,

    Je suis sous Delphi XE2 et base de données Firebird.

    J'ai un dblookupCombo de chez infopower. J'ai un évènements qui me permet de savoir si l’élément tapé au clavier est dans la liste (OnNotinList). Cela permet d'éviter de taper n'importe quoi et d'avoir des mauvaises valeurs. Si la valeur saisie est incorrect, je remets le focus sur le composant.

    Le problème est qu'avec la touche TAB, l'évènement NoOntheList se passe mais je vais ensuite sur le composant suivant (à cause de la touche TAB).
    J'ai un peu fouillé sur le net mais je n'ai rien trouvé pour arrêter l'action de la touche tab (ou alors je n'ai peut-être pas compris les codes que j'ai vu).

    Est-il possible d'arrêter le tab si je vois que les données encodées ne sont pas dans mon listing ?

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Bonsoir,

    ne connaissant pas le composant dblookupCombo de chez infopower ma question sera y-a t-il l'évènement onKeyPress ou onKeyDown ?

    si oui quelque chose comme

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if key=vktab then
     begin
       // tester valeur dans liste 
       // sinon Key:=#0;
     end;
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  3. #3
    Membre à l'essai
    Bonjour,

    Merci pour ta réponse.

    De manière générale, les composants infopower amène des fonctionnalités en plus du composant de base de Delphi.
    Il y a bien les évènements onkeypress et onkeydown.

    Je ne peux pas intercepter la touche tab dans ces évènements car je veux laisser à l'utilisateur la possibilité d'utiliser le clavier pour naviguer dans le form.
    De plus, je dois avoir le retour de l'évènement NotOnThelist du composant.

    Comme cela me turlupinait, j'ai continué à chercher sur le net et je suis tombé sur ceci :

    https://stackoverflow.com/questions/...nd-suppress-it

    et plus globalement sur le site d'embaradero ceci :

    http://edn.embarcadero.com/article/38447

    Je vais essayer de voir si cela peut convenir dans mon cas.

    Je ne manquerai pas de vous tenir informé

    Si vous avez d'autres idées, je suis bien entendu preneur