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

Lunasoft Messages postés 75 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 16 août 2011 - 13 déc. 2008 à 00:46
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 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

1 réponse

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
13 déc. 2008 à 16:11
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
0
Rejoignez-nous