Anomalie avec la validation de mon mot de passe...

Messages postés
75
Date d'inscription
samedi 28 juin 2008
Statut
Membre
Dernière intervention
16 août 2011
- - Dernière réponse : cs_cantador
Messages postés
4996
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
- 13 déc. 2008 à 16:11
Bonjour à Tous!


J'ai un problème... Je veux m'expliquer pour vous aider à me comprendre.
Il s'agit juste de la procedure "mot de passe" qui marche bien mais il y a quelques heures que j'ai changé un peu
de stratégie que ça loupe un peu.


Avant tout, j'informe que j'ai sur mon form un combobox et un edit. Dans mon combobox, j'avais les noms des
utilisateurs. Et l'edit, pour le mot de passe. Voici les codes qui ne loupe pas:



procedure TSenha.BitBtn1Click(Sender: TObject);
  var achou : boolean;
begin
    achou := false;
          try
            while  not ADOPassword.eof do begin
              if (ADOPassword.fieldbyname('utilizador').asstring = Utilizador.text) and
                 (ADOPassword.fieldbyname('senha').asstring = Senha.text)
               then begin
                  achou := true;
                  Entrada1.show;
              end;
                ADOPassword.next;
            end;
            if not achou  then begin
                showmessage('senha errada!');
                senha.SetFocus;
                senha.Clear;
                AdoPassword.Close;
                AdoPassword.Open;
            end;
          finally
            //senha.Visible := false;

Plus tard, j'ai changé un peu ma manière de proceder avec "utilisateur" et "mot de passe".
Que j'fait?
J'ai vidé le dit combobox et j'ai écrit les codes ci-dessous afin aspirer (ou importer) toujours les noms des utilisateurs de la base de données.



procedure TSenha.FormCreate(Sender: TObject);
begin
  ADOPassword.Open;
  ADOPassword.DisableControls;
  try
  while not ADOPassword.Eof do
  begin
  Utilizador.Items.Add(ADOPassword.FieldByName('Utilizador').AsString);
  ADOPassword.Next;
end;
finally
ADOPassword.EnableControls;
end;


Mais alors, mon petit macabre commence là.
Curieusement, quand j'insère le mot de passe (même s'il est correct). Le moment de la validation, il n'affiche pas de
message "mot de passe incorrecte". Mais du moins, il faut valider une deuxième fois pour avoir accès (ou passer à
un autre form).
Tantis que les premiers ne me font pas ce problème. Que ça peut être?


Merci,


LunaSoft
Afficher la suite 

1 réponse

Messages postés
4996
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
9
0
Merci
bonjour,
procedure TSenha.FormCreate(Sender: TObject);
begin
//  try
// ADOPassword.DisableControls;
  ADOPassword.Open;
  while not ADOPassword.Eof do
  begin
  Utilizador.Items.Add(ADOPassword.FieldByName('Utilizador').AsString);
  ADOPassword.Next;
  end;
// finally
// ADOPassword.EnableControls;
// end;

ensuite, pour gérer correctement la connexion, il faut tester à la fois le Login et le password.

Autrement dit, il faut traiter ces élèments dans un évènement OnChange

Le même pour les deux : le Combobox et l'edit et dès que les deux sont corrects alors tu allumes un bouton qui sur un clic ouvre ta forme.

cantador
Commenter la réponse de cs_cantador