Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SAISIE D'UN CHIFFRE (ET D'UN SEUL) DANS UN TEDIT


Information sur la source

Catégorie :Texte Classé sous : edit, chiffre, saisie, unique, seul Niveau : Débutant Date de création : 27/12/2003 Date de mise à jour : 27/12/2003 16:55:04 Vu / téléchargé: 2 649 / 236

Note :
Aucune note

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note


Description

Ce bout de code permet de limiter la saisie dans un TEdit à un seul chiffre.

La première partie du code est relativement connue dans son principe.
Elle se contente de filtrer les caractères autorisés.
La deuxième m'a donné un peu plus de mal...
En réponse à une question posée récemment sur le forum.

Ce code filtre la saisie selon 4 critères :

- la boîte de saisie n'accepte que les chiffres, ainsi que deux touches autorisées, ici : retour arrière (#8) et Entrée (#13);

- elle n'accepte qu'un seul caractère (propriété Edit1.MaxLength := 1, qu'on peut déterminer par l'intermédiaire de l'Inspecteur d'Objets);

- si un caractère non autorisé est entré, le caractère valide déjà affiché dans la boîte de saisie est conservé.

- les caractères autorisés, mais autres que des chiffres, ne sont pas affichés.


 

Source

  • procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
  • begin
  • Edit1.MaxLength := 1; // 1
  • if not (Key in [#8, #13, '0'..'9']) then // 2
  • begin
  • Key := #0; // 3
  • Exit; // 4
  • end
  • else
  • if not (Key in [#8, #13]) then // 5
  • Edit1.Text := Key; // 6
  • // Traitement éventuel ici // 7
  • end;
  • {
  • 1 on peut utiliser l'inspecteur d'objets
  • 2 autorisé : retour, entrée, chiffres (adapter selon nécessité)
  • 3 la touche pressée est nulle
  • 4 sortie
  • 5 touches autorisées mais qui ne sont pas des chiffres
  • 6 affiche le chiffre saisi
  • 7 traitement du contenu de la boîte de saisie
  • }
  • Un petit zip ci-joint, bien qu'il me paraisse peu utile...
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  Edit1.MaxLength := 1;                     // 1
  if not (Key in [#8, #13, '0'..'9']) then  // 2
  begin
    Key := #0;                              // 3
    Exit;                                   // 4
  end
  else
  if not (Key in [#8, #13]) then            // 5
    Edit1.Text := Key;                      // 6
  // Traitement éventuel ici                // 7
end;

{
1 on peut utiliser l'inspecteur d'objets
2 autorisé : retour, entrée, chiffres (adapter selon nécessité)
3 la touche pressée est nulle
4 sortie
5 touches autorisées mais qui ne sont pas des chiffres
6 affiche le chiffre saisi
7 traitement du contenu de la boîte de saisie
}

Un petit zip ci-joint, bien qu'il me paraisse peu utile...

Conclusion

Si vous avez une autre méthode, n'hésitez pas à nous la faire partager !
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de Delphiprog le 28/12/2003 16:12:15 administrateur CS

Ca peut aussi se résumer en :
  case key of
   '0'..'9' : Edit1.Text := Key; //remplace le contenu éventuel
   #8, #13 : exit; //traitement normal
   else
    Key := #0; //annuler la touche frappée
  end;
Un seul test réalisé au lieu de 2. C'est toujours quelques nanosecondes de gagnées ! ;o)

signaler à un administrateur
Commentaire de japee le 28/12/2003 16:39:18 administrateur CS

Salut, Delphiprog.
Superbe...
Pourquoi faire compliqué quand ont peut faire simple ;)
Merci pour ta méthode, je l'adopte !

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

contrôle de saisie [ par pseudoOM ] Bonjour tout le monde.Quelqu'un pourrait-il m'aider pour les contrôle de saisie. J'aimerais contrôler si l'utilisateur entre des chiffre dan Bloquer les lettres dans un Edit [ par LaNat88 ] Bonjour,J'ai un Edit accueuillant la saisie d'un numéro de téléphone et j'aimerais bloquer la saisie de lettres; je vois pas trop comme mask edit et exception [ par deubal ] bonjour,je cherchais a mettre un masque sur une zone de saisie pour obliger l'utilisateur a saisir une date (format jj/mm/aaaa). trouvé sur le fo format 'edit.text' [ par eleve123 ] Bonjour tt le monde,j'ai un petit souci, quand je tape un chiffre dans une edit, je veux qu il soit enregistré automatiquement  sous le format (001, 0 controle saisie (edit) [ par zorro4243 ] Je ne trouve pas de solution au problème suivant, simple et fréquent de surcoit ! Dans un evenement 'on KeyPress', je souhaite contrôler et surtout M Forcer la saisie en majuscule dans un Edit ? [ par Val08000 ] Bonjour !Je suis débutant en delphi !Je voudrais savoir comment faire pour forcer la saisie en majuscule dans un Edit afin de rentrer cette chiffre en lettre [ par vrachid ] bj a tousy a til un moyen de convertir un chiffre en sa position numérique dans l'alphabet?par exemple si je tape 1 dans un edit j'aurai un A dans l'a bloquer saisie dbgring [ par jerome57440 ] bonjour,serait t'il possible de n'autoriser que le saisie des nombres de 0 a 9 dans un champs d'un BDgrindlorsque je remplie min et maxvalue si je tap Seulement des chiffres dans un edit. [ par Becracker ] Salut à tous, Je voudra savoir si qqn d'entre vous sait comment faire pour qu'un edit n'accepte que des chiffres. Merci à tous et dés Récup longueur de la saisie [ par MimiGMT ] Bonjour,Voilà j'ai un petit souci : je souhaite connaitre la longueur du texte que je suis en train de saisir : pas de problème pour les dbe


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.