La capture d'un 'supprimer' les clés de la presse
Je ne peux pas comprendre comment capturer l' Supprimerappuyez sur une touche.
J'ai découvert que le code ASCII de la table, c'est à 127 place, mais if (Key = #127) then
m'a nulle part.
Puis j'ai vérifié la valeur de VK_DELETE
qui était de 47. Essayé de l'utiliser, mais il ne fonctionne pas.
La KeyPreview := true
est défini dans mon formulaire.
J'ai essayé d'ajouter le ShowMessage(IntToStr(Ord(Key)))
les Formes événement KeyPress, mais je n'ai jamais reçu le message contextuel en cliquant sur le Supprimer.
J'ai besoin de gérer l' Supprimer appuyez sur la touche dans dynamicaly créé des champs de saisie. Je veux contrôler quelle partie du texte utilisateur peut effacer dans ce domaine, et je sais comment gérer la suppression de texte à l'aide de retour arrière, maintenant besoin de comprendre comment le faire avec Supprimer.
Grâce
OriginalL'auteur user1651105 | 2010-03-06
Vous devez vous connecter pour publier un commentaire.
Vous devez gérer les
OnKeyDown
au lieu de laOnKeyPress
événement. Si vous le faites alorsVK_DELETE
doit travailler pour vous. Notez que le paramètre deOnKeyDown
etOnKeyUp
est unWord
, pas unChar
comme pourOnKeyPress
.OriginalL'auteur mghie
Mghie a la bonne réponse, voici un exemple:
Noter que l'utilisateur peut également supprimer du texte à l'aide de couper vers le presse-papiers afin que vous mai besoin pour traiter aussi bien.
Hewgill, il est facilement évitable. Je peux vérifier de quelle partie du texte est sélectionnée dans l'événement KeyPress, avant de le laisser à l'utilisateur d'écrire quelque chose.
OriginalL'auteur Ville Krumlinde
Vous pouvez utiliser de l'événement OnKeyDown pour filtrer les indésirables Supprimer touche enfoncée:
OriginalL'auteur kludg