begin process at 2012 02 11 07:26:20
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Texte

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

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


 Information sur la source

Note :
Aucune note
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é :3 837 / 281

Auteur : japee

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
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

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture DEPLACER LES ITEMS D'UNE LISTBOX VERS UNE AUTRE PAR DRAG AND...
Source avec Zip Source avec une capture DÉMINEUR UTILISANT UNE TDRAWGRID ET AVEC LEQUEL ON PEUT TRIC...
Source avec Zip Source avec une capture SIGNIFICATION DES CODES D'ERREUR DE L'API WIN32 - UTILISATIO...
Source avec Zip Source avec une capture CONVERSION LITTÉRALE D'UN NOMBRE ENTIER OU FLOTTANT
Source avec Zip Source avec une capture TPULSEBUTTON - RÉPÉTITION PROGRESSIVE D'UN EVENT PENDANT ONK...

 Sources de la même categorie

Source avec Zip Source avec une capture TABLEAU INFO SAVE INI par quentinix
Source avec Zip TIBWORD: EDITEUR ORIENTE LANGUE TIBÉTAINE par fredelem
Source avec Zip Source avec une capture POSTIT INFOS par dubois77
Source avec Zip Source avec une capture STREAM STRINGWRITER... UNE MICRO-LIBRAIRIE POUR ÉCRIRE DES C... par LaDentDeLait
Source avec Zip COMBINAISONS DE STRINGS par askil2000

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture ODL EDITRTF 2007 par ODLCITEINFO
Source avec Zip Source avec une capture CONVERSION LITTÉRALE D'UN NOMBRE ENTIER OU FLOTTANT par japee
Source avec Zip TROIS COMPOSANTS EDIT par ThWilliam
Source avec Zip Source avec une capture FILTRER LA SAISIE VALIDE D'UN NOMBRE ENTIER, FLOTTANT, SIGNÉ... par japee
DÉPLACER LE FOCUS D'UN TEDIT À L'AUTRE EN IGNORANT LES AUTRE... par japee

Commentaires et avis

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)

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 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 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 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 Comment retrancher le tout dernier chiffre et garder le reste originalement [ par leading ] Salut! J'ai une question liée à ceci. Je vous demande de m'aider. Car j'ai écrit les codes ci-dessous et me reste quelques lacunes. J'ai trois edits Sauvegarder dans un INI [ par Gogo700 ] Voilà, mon programme est composé d'un Edit et j'aimerais sauvegarder le contenu que lorsque l'on appuie sur un bouton le contenu de l'Edit soit sauveg inputbox avec chiffre et lettre [ par pcpower ] Bonjour à tous, Je me permet de poster ce message afin de solliciter votre aide. J'ai pour un projet, une boucle, qui me permet de de faire varier


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,217 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales