Saisie mot de passe en nombre limité

Soyez le premier à donner votre avis sur cette source.

Vue 9 603 fois - Téléchargée 951 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
rickless Messages postés 16 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 22 décembre 2005
21 janv. 2005 à 14:58
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
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
25 juil. 2004 à 10:42
oui peut etre mais g resolue mon probleme merci quand meme
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
24 juil. 2004 à 18:52
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.
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
21 juil. 2004 à 18:20
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.