ELCouz
Messages postés135Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention25 juillet 2008
-
18 mars 2008 à 18:33
ELCouz
Messages postés135Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention25 juillet 2008
-
22 mars 2008 à 19:11
Bonjour,
Quelqu'un aurait un conseil pour faire une function qui verifie si la string est alphanumerique ou non ?
et retourne true or false, false si la string contient des trucs autre que [0-9 ,a-z et A-Z]
Merci beaucoup de votre aide !
ps: je connais le truc du keydown et regarder la touche enfoncer mais moi jveut verifier un TEdit de facon a eviter qun malin copie coller des symboles afin de tout faire planter ;)
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 19 mars 2008 à 00:15
Regarde bien le code ... on peut avoir un controle sur la chaine de caractères qui est sur le point d'être collé.
Cette quoi cette manille quand on vous dit qu'il y a tout dedans faites au moins l'effort de regarder le code !!!!!
ça ne figure pas dans la description puisque cette possibilité a été ajouté par la suite
Titre du code source CONTROLER UN "COPIER/COLLER" DANS UN TEDIT Il peut entre autre Interdir un Copier/Coller mais pas seulement
ELCouz
Messages postés135Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention25 juillet 2008 21 mars 2008 à 23:07
Bonjour,
J'étais interesser apropos du truc de gestion de copier coller mais jme suis arranger quelque chose de plus simple encore et de TRES efficace (et flexible)...
sur un bouton:
if edit1.Text <> regex(edit1.Text,'\w+') then showmessage('pfff ta mit autre chose que des chiffre ou des numeros !!!');
else toncodeaexecuter_car_tout_est_ok;
la function regex:
function Regex (const InputString,Expression: string) : string;
var
r : TRegExpr;
begin
r := TRegExpr.Create;
try
r.Expression := Expression;
if r.Exec (InputString)
then Result := r.Match [0];
finally r.Free;
end;
end;
elle utilise une composante (non-vcl) qui se nomme TRegExpr... cest le truc a utiliser pour faire du regular expression avec Delphi ... en plus ce truc est gratuit !!!
ELCouz
Messages postés135Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention25 juillet 2008 18 mars 2008 à 23:20
Bonjour,
Je ne veut pas interdire un copier coller je veux juste empecher que quelque copy paste des informations errones...
C-a-d verifier l'information seulement que lorsque jappuie sur le boutton OK.
Empecher un copier coller ne fera que limiter mon programme qui «deal» avec beaucoup de donnee redondante (Numero de reperage de colis provenant du web)... sa serais tannant pour lutilisateur de rentrer les numero de 10 a 30 caracteres a la main!
@cantador
et si je fait clic droit sur le champ et puis coller ? ;)
Merci de votre aide !
Laurent
Vous n’avez pas trouvé la réponse que vous recherchez ?
ELCouz
Messages postés135Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention25 juillet 2008 18 mars 2008 à 23:24
ReBonjour,
J'ai penser a une function qui loop (pour la longueur de la string) et verifie caractere par caratere si elle contient seulement des char entre [0-9 ,a-z et A-Z]....
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 21 mars 2008 à 18:56
Si tu ne veux pas utiliser la technique à propos du copier coller..
N'oublie pas qu'il te faudra bien à un moment déclencher une validation et cette dernière pourra à cet instant vérifier le contenu du TEdit et donc l'autoriser ou non.
et dans le cas où la donnée n'est pas correcte, on peut même vider le TEDIT et en informer l'utilisateur et attendre une nouvelle entrée.
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 22 mars 2008 à 12:59
Intéressant mais rares néanmoins
sont les applis ayant un souci récurent d'intégrité de la saisie
et quelquefois il est plus simple d'écrire quelques lignes de code plutôt que d'introduire une unité supplémentaire traitant TOUS les cas pouvant se présenter.
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 22 mars 2008 à 15:48
Mouais,
ça fait pas très propre tous ça !!!
Avecta solution : l'utilisateur peut rentrer des données érronnées et il en est averti qu'au moment ou il appuie sur le bouton ...
Alors que le code que je te proposais permet d'intervenir avant que le caractère ou la chaine de caractères ne soit affiché dans le TEdit et cela en toute transparence pour l'utilisateur.
Et tu peux même faire ceci:
Admetton que l'utilisateur doit entrer un numéro de téléphone au format :
"xx-xx-xx-xx-xx" et qu'il colle la chaine suivante "Tel : 01/02/03/04/05" avec mon code l'utilisateur verra s'afficher : "01-02-03-04-05" et le texte dans le presse-papier lui reste inchangé ce qui veut dire qu'un coller dans un autre TEdit (non controlé) s'affichera : "Tel : 01/02/03/04/05". Du coup l'utilisateur n'aura pas besoin de re-saisir les données, aucune erreur ne vient perturber le cour des choses.
Vous êtes quand même marrant ... le problème du copier/coller est un problème récurant, que l'on trouve sur beaucoup de forum, qui est resté sans solution pendant très longtemps et maintenant qu'une solution existe (flexible, propre dont le code et la mise en oeuvre sont d'une simplicité enfantine) vous repartez dans des bricolages douteux !!!! j'avoue que j'ai beaucoup de mal à comprendre votre logique.