Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: Benutzerlogin if-Anweisung mit ODER ?

  Alt 22. Aug 2007, 15:29
Zitat von kalmi01:
Delphi-Quellcode:
procedure TfLogin.iAnmeldenClick(Sender: TObject);
begin

        if TBenutzer.FieldByName('Benutzername').AsString = 'Adminthen


              if TBenutzer.FieldByName('Kennwort').AsString = eKennwort.Text then
              begin

                    ShowMessage('Anmeldung als Admin erfolgreich');
                    fLogin.Hide;
                    fAdminMenue.Show;


              end
          else if TBenutzer.FieldByName('Benutzername').AsString = dbeBenutzername.Text then
               begin

                     if TBenutzer.FieldByName('Kennwort').AsString = eKennwort.Text then
                     begin

                           ShowMessage('Anmeldung als Benutzer erfolgreich');
                           fLogin.Hide;
                           fBenutzerMenue.Show;
                     end
        end

end;
So vielleicht ?
Hi, Dein (bezogen auf den Threadsteller) und der zitierte Code sind eigentlich nur Paradebeispiele dafür, wie man sich ein paar Zeichen spart und in somit in Probleme läuft. Ist nicht böse gemeint! Nur schreiben die meisten Leute zu gutem Stil, dass zu jedem if ein begin ... end gehört, auch wenn nur eine Zeile folgt. Angewandt auf Dein Problem ergibt das:
Delphi-Quellcode:
procedure TfLogin.iAnmeldenClick(Sender: TObject);
begin
  if TBenutzer.FieldByName('Benutzername').AsString = 'Adminthen
  begin
    if TBenutzer.FieldByName('Kennwort').AsString = eKennwort.Text then
    begin
      ShowMessage('Anmeldung als Admin erfolgreich');
      fLogin.Hide;
      fAdminMenue.Show;
    end; // if TBenutzer.FieldByName('Kennwort').AsString = eKennwort.Text
  end // if TBenutzer.FieldByName('Benutzername').AsString = 'Admin'
  else if TBenutzer.FieldByName('Benutzername').AsString = dbeBenutzername.Text then
  begin
    if TBenutzer.FieldByName('Kennwort').AsString = eKennwort.Text then
    begin
      ShowMessage('Anmeldung als Benutzer erfolgreich');
      fLogin.Hide;
      fBenutzerMenue.Show;
    end // if TBenutzer.FieldByName('Kennwort').AsString = eKennwort.Text
  end;
end;
So passieren solche Fehler einfach gar nicht, da immer klar ist, welches else zu welchem if gehört.

Gruß Der Unwissende
  Mit Zitat antworten Zitat