Validation d'un Code Postal(format Canadien) en Delphi Objet [Résolu]

Signaler
Messages postés
14
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2007
-
Messages postés
14
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2007
-
Bonjour,

je cherche une fonction(ou Procédure) de Validation permettant de valider un Code Postal de Format H1H 1H1, je n'arrive pas à faire en sorte que la première fois, on cherche une lettre, la 2ième fois un chiffre et ainsi de suite...(le Code Postal est entré dans un champ Edit, évidemment)

Merci à l'avance.

Alex

6 réponses

Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
2
Et en utilisant un TEditMask ?
Propriété editmask := ">L0L 0L0;1;_"

Cordialement.
Messages postés
14
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2007

merci beaucoup, je vais tester ça! :D
Messages postés
14
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2007

Y-a-t il un moyen pour que les lettres entrées soit automatiquement en Majuscule(qu'importe si l'usager les entre en minuscule ou Majuscule???) en utilisant le MaskEdit
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
2
oui c'est le > de ">L0L 0L0;1;_"
qui force les caractères majuscules.

Cordialement.
Messages postés
14
Date d'inscription
lundi 9 mai 2005
Statut
Membre
Dernière intervention
27 septembre 2007

oh!

ok, merci!! :D
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
Tu veux vérifier la validité au moment de la saisie, je suppose ?



Je n'ai pas trop le temps de tester mon code, mais comme ça vite fait, ça devrait donner quelque chose comme ça :



function IsValid(S: TObject; K: Char): Char;

var Position: Byte; // sur modèle: H1H 1H1

begin

Result := #0;

Position := Length(TEdit(S).Text) +1;

if Position > 7 then Exit;

if K in #13 then

begin

Result := K;

Exit;

end;

case Position of

1, 3, 6: if K in ['A'..'Z', 'a'..'z'] then Result := K;

2, 5, 7: if K in ['0'..'9'] then Result := K;

4: if K = ' ' then Result := K;

end;

end;



procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

Key := IsValid(Sender, Key);

end;



Bonne prog'