Saisie mot de passe en nombre limité

Soyez le premier à donner votre avis sur cette source.

Vue 8 758 fois - Téléchargée 918 fois

Description

Il semble que la saisie de mots de passe soit en vogue en ce moment.
Pour répondre à cette attente et apportant un petit plus, voici donc un code source ajoutant un degré de plus : limitations du nombre de tentatives par l'utilisateur avant d'être gentiment éjecté après l'affichage d'un message surement inspiré par le groupe Supertramp : 'Goddbye stranger !'.

Source / Exemple :


procedure TPasswordDemoMainForm.FormCreate(Sender: TObject);
const
  //nombre maximum d'essais autorisés
  MaxRetries = 3;
  //le sésame
  Password = 'Password';
var
  //compteur du nombre de tentatives
  NbRetries : integer;
  //booléen indiquant si le mot de passe saisi est correct
  ValidPassword : boolean;
begin
  //Initialisations
  NbRetries := 0;
  ValidPassword := False;
  { Utilisation de la boite de dialogue de mot de passe standard }
  PasswordDlg := TPasswordDlg.Create(Application);

 { Tant que le nombre de tentatives autorisées n'est pas atteint
 et que le mot de passe saisi n'est pas correct, réafficher la
 boite de dialogue}
  while (NbRetries < MaxRetries) and (not ValidPassword) do
  begin
    Inc(NbRetries);
    {Si l'utilisateur a appuyé sur Annuler, sortir de la boucle While}
    if PasswordDlg.ShowModal = mrCancel then
      break;
    {Comparaison avec le sésame}
    ValidPassword := PasswordDlg.Password.Text = Password;
  end; {while (NbRetries < MaxRetries) and (not ValidPassword)}
  
  PasswordDlg.Free;
  {Enfin, si le mot de passe saisi n'est pas correct, on éjecte
  et on ferme l'application.}
  if not ValidPassword then
  begin
    ShowMessage ('Goddbye stranger !');
    Application.Terminate;
  end;
end;

Conclusion :


Code réalisé avec Delphi6.
Aucune difficulté particulière.
Utilisation de l'existant : TPasswordDlg fourni par Delphi (vive la POO) .

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
16
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
22 décembre 2005

Bien le bonjour DelphiProg,

je suis sur Delphi 5...

J'ai un problème sur PasswordDlg. Est-ce du à Delphi5 ou est-ce que j'ai oublié de déclarer quelquechose ?

Merci d'avance.

Rickless
Messages postés
2448
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
12
oui peut etre mais g resolue mon probleme merci quand meme
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
28
Chiffres ou lettres, c'est le même problème : dans les deux cas, on compare deux chaines de caractères.

Pourquoi comparer aussi la taille ?
Ce code traite de la saisie de mot de passe : seule une chaine identique à celle recherchée peut avoir un intérêt. Et si elle est identique, c'est qu'elle a la même taille.
Messages postés
2448
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
12
pas mal mais je voudrais savoir comment faire avec des chiffre et comment compare la taille aussi?
merci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.