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

Lazarus Pascal Discussion :

Événement onKeyPress et caractères spéciaux


Sujet :

Lazarus Pascal

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Événement onKeyPress et caractères spéciaux
    Bonjour,
    Je travaille avec Lazarus installé sur ubuntu 16.
    J'ai besoin de gérer les saisies dans un Tedit caractère par caractère.
    Tout fonctionne très bien en passant par le onkeypress, sauf pour certains caractères comme Â, Ä, Ê, Ï, Ô etc ... , apparemment ceux utilisant une dead key (du moins sur mon clavier français).
    La saisie de ces caractères ne déclenche aucun passage dans le onkeypress ni le onkeydown ni le onkeyup mais le contenu du Tedit est bien mis à jour.
    Ainsi si je tape 12345Â, je vois passer 12345 mais pas  ni aucun de ses composants (#195 et #130).
    Auriez-vous une idée du chemin suivi par ces frappes clavier.

    Merci


    P.S : Quand on regarde la taille de la saisie dans le Tedit de ces caractères on s'aperçoit que la chaîne comprend pour chacun deux éléments (un code Dec 195 ou Hex c3, plus une autre valeur Dec 130 pour le A, Dec 162 pour le a) soit manifestement un codage deux bits du type unicode, utf8 etc... Ainsi un Tedit.text = '12345Â' aura une length de 7. J'imagine que cela est fort utile sur un clavier cyrillique ou chinois etc...

  2. #2
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    Bonjour,

    Pour travailler avec les caractères UTF8, il faut utiliser le gestionnaire d'événement OnUTF8KeyPress (il est tout à la fin des événements de l'inspecteur d'objets).

    Cordialement,
    Gilles
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour la réponse, je n'avais pas vu cet événement il est vrai situé tout à la fin de la liste dans l'inspecteur d'objet (mais ce n'est pas une excuse ).

    Malheureusement si cela fonctionne bien avec des caractères comme le signe € ( on obtient bien les trois éléments constitutifs UTF8 : E2 82 AC) ou pour la lettre µ ( C2 35) cela ne fonctionne toujours pas avec mes Â, Ä Ê,Ë etc ... qui ne passent donc ni par onkeypress, onkeydown, onkeyup ni par onUTF8keypress mais arrivent bien à destination.
    Je subodore un traitement particulier lié aux touches mortes (dead key) accent circonflexe et tréma (^ "), mais lequel ?

  4. #4
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    Avec Lazarus 1.6.2 sur Windows 10, je récupère sans problème un caractère comme le Â. À vérifier sur un exemple tout simple : un TEdit, un TLabel et un gestionnaire où l'on affiche le caractère saisi dans le TEdit dans le TLabel. Chez moi, pas de problème.

    Cordialement,
    Gilles
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    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 858
    Points : 11 299
    Points
    11 299
    Billets dans le blog
    6
    Par défaut
    mais le contenu du Tedit est bien mis à jour
    Quid du OnChange, alors, pour l'attraper ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    Quid du OnChange, alors, pour l'attraper ?
    Le Onchange fonctionne bien. Je l'utilise, provisoirement, pour arriver à mes fins. Mais c'est un contrôle à posteriori qui m'oblige à "effacer" le caractère indésirable, pas très élégant à mon goût.


    Gilles,

    Effectivement c'est un moyen très rapide que j'ai mis en place pour les tests, mais sans succès.
    Je vais rechercher du côté d'ubuntu puisque c'est correct sous windows.
    Les messages (et donc les événements onkeyxxx) sont peut être gérés différemment sur les deux systèmes.

    Bonne journée à vous.

Discussions similaires

  1. Conversion des caractères spéciaux sur un événement onChange
    Par imagonem dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/04/2009, 22h45
  2. Où trouver la liste des caractères spéciaux?
    Par gamez dans le forum Langage
    Réponses: 3
    Dernier message: 19/08/2003, 17h54
  3. Transformation XSL et caractères spéciaux
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 4
    Dernier message: 28/04/2003, 10h38
  4. [Sybase] filtre sur caractères spéciaux
    Par montelieri dans le forum Sybase
    Réponses: 4
    Dernier message: 07/04/2003, 16h49
  5. Traiter les caractères spéciaux
    Par ricola dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2003, 09h23

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