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

 


Dernière réponse
Sujet : [Delphi 4] Contrôle de validité d'un champ
Profil supprimé Le mieux pour toi je pense est d'utiliser l'évènement OnValidate du TField sur lequel tu veux faire un controle...
Tu double cliques sur ton query ou ta table, puis clique droit "ajouter tous les champs"
Tu vas sur le champs qui t'interesse, puis dans les evenements, double clique sur OnValidate puis tu mets le code suivant:
 
if Nomdetablenomdechamp.Value = '....' then
raise Exception.Create('Valeur incorrecte');
 
L'utilisateur ne pourra pas sortir du champs tant qu'il n'aura pas rentré une valeur correcte... ;)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Le mieux pour toi je pense est d'utiliser l'évènement OnValidate du TField sur lequel tu veux faire un controle...
Tu double cliques sur ton query ou ta table, puis clique droit "ajouter tous les champs"
Tu vas sur le champs qui t'interesse, puis dans les evenements, double clique sur OnValidate puis tu mets le code suivant:
 
if Nomdetablenomdechamp.Value = '....' then
raise Exception.Create('Valeur incorrecte');
 
L'utilisateur ne pourra pas sortir du champs tant qu'il n'aura pas rentré une valeur correcte... ;)
JWhy 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!)
rufo

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)

antp 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]

chev_alier 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]

Est ce que ce sont des champs de BD ? J'entends: est-ce des dbedit ou des edit "normaux" ?
_gtm_ pour les ifs, je te conseille les ensemble (donc du genre if caractere in ['1', '2', .... , ' ', '+' ... ] then ....
antp 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.
chev_alier 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

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