Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1046 connectés 

  FORUM HardWare.fr
  Programmation

  [Delphi 4] Contrôle de validité d'un champ

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Delphi 4] Contrôle de validité d'un champ

n°68236
chev_alier
Vive la clim !
Posté le 29-10-2001 à 17:12:50  profilanswer
 

Qui pourrait me dire comment contrôler la validité d'un champ alphanumérique avec un If
 
par exemple pour le téléphone, il faut accepter les nombres + "[ESPACE]" + "." + "/" + "+"
pour l'Email, il faut accepter tous les caractère alphanumérique sauf ":" + ";" + "'" + "?" + "?" + ??? (je sais plus quel caractère ne passe pas). Il faut aussi quel le champ contienne une seul "@" et au moins un "." après le "@"
 
Scusez-moi... mais je suis un vrai nioubie :D

mood
Publicité
Posté le 29-10-2001 à 17:12:50  profilanswer
 

n°68294
antp
Super Administrateur
Champion des excuses bidons
Posté le 29-10-2001 à 21:27:46  profilanswer
 

tu testes dans le onkeyup, onkeydown, onkeypress ou onkeychange, au choix.
tu peux aussi utiliser le TMaskEdit (je l'ai jamais utilisé) pour imposer un formatage du champ je crois.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°68356
_gtm_
Posté le 30-10-2001 à 00:05:04  profilanswer
 

pour les ifs, je te conseille les ensemble (donc du genre if caractere in ['1', '2', .... , ' ', '+' ... ] then ....

n°68454
chev_alier
Vive la clim !
Posté le 30-10-2001 à 12:13:45  profilanswer
 

C'est des champs dbedit.
ça marche.. mais que partiellement.
 
j'ai utiliser l'évènement on keyPress
//si le caractère est autorisé
if (Key in ['1','2','3','4','5','6','7','8','9','0','+','/',' ','.','(',';)']) or (Key=char(8)) or (Key=char(13)) then
//c'est ok
  else
  //y a un message d'avertissement
     Application.MessageBox('Caractère non autorisé !','Erreur de saisie',MB_OK+MB_ICONWARNING);
  ;
 
Le problème, c'est que le caractère passe quand même et que je n'ai pas trouvé de truc pour l'effacer.
Le mieux ça serai de contrôler tout le champ avec l'évènement OnExit... mais comment faire ce contrôle ?
If dbefNoTelPrive.Text=??? then
//afficher message d'erreur + obliger l'utilisateur à corriger

 

[edtdd]--Message édité par chev_alier--[/edtdd]

n°68473
antp
Super Administrateur
Champion des excuses bidons
Posté le 30-10-2001 à 13:56:50  profilanswer
 

un message à chaque caractère c'est très casse-pieds...
 
exemple d'un truc qui marche (je viens de tester) :

Code :
  1. procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
  2. begin
  3.   if not (key in ['0'..'9', char(VK_BACK), char(VK_TAB), char(VK_RIGHT), char(VK_LEFT)]) then
  4.   begin
  5.     key := #0;
  6.   end;
  7. end;


 
le key := #0 fait qu'il ne s'affiche rien dans l'edit si on appuie sur une mauvaise touche (contenu reste inchangé)
et pour ton '1','2','3', etc... y a '0'..'9' qui est nettement plus court comme syntaxe ;)

 

[edtdd]--Message édité par antp--[/edtdd]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°68523
rufo
Pas me confondre avec Lycos!
Posté le 30-10-2001 à 15:26:54  profilanswer
 

chev_alier a écrit a écrit :

Qui pourrait me dire comment contrôler la validité d'un champ alphanumérique avec un If
 
par exemple pour le téléphone, il faut accepter les nombres + "[ESPACE]" + "." + "/" + "+"
pour l'Email, il faut accepter tous les caractère alphanumérique sauf ":" + ";" + "'" + "?" + "?" + ??? (je sais plus quel caractère ne passe pas). Il faut aussi quel le champ contienne une seul "@" et au moins un "." après le "@"
 
Scusez-moi... mais je suis un vrai nioubie :D  




 
Utilise les MaskEdit :) c'est beaucoup plus simple. De plus les Edit dispose d'un attribut pour mettre en MAJ/Min les lettres direct (normalCase, Upcase... à chercher dans l'inspecteur d'objet pour les Edit seulement)

n°68585
JWhy
je peux plier (héhé)
Posté le 30-10-2001 à 19:45:11  profilanswer
 

une idée qu'il faudrait approfondir (ca veut dire que je n'ai pas cherché mais ca doit surement exister): utiliser les RegExp (il y doit y avoir des unit qui font ca Torry's ou sur la DSP) et apres tu valides tes champs sur le OnExit.
 
pour les simples verif. , ca n'est surement pas necessaire mais tu pourras ensuite facilement faire des verif. complex ( pour l'email, et pour ce dont tu auras besoin par la suite!)


---------------
www.alliancefrancophone.org ... Home is where the heart is

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Delphi 4] Contrôle de validité d'un champ

 

Sujets relatifs
[Delphi et Windows XP] Qu'est-ce que c'est que ce bordel !!??[Delphi 4] Erreur lors du lancement de l'exe sur un autre poste
image et delphi[javascript] insertion de texte autour d'une selection dans un champ :
DELPHI showModal etc...DELPHI arrondi
DELPHI[Delphi 4] Ecrire du texte sur un bouton sur 2 ligne
DELPHI Fonction[Delphi 4] Ajouter une information sur un bitbtn
Plus de sujets relatifs à : [Delphi 4] Contrôle de validité d'un champ


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)