![]() |
Benutzerlogin if-Anweisung mit ODER ?
Huhu ihr Coder ;) ,
Hab folgendes Problem: Hab mir ne Benutzeranmeldung zusammen gebastelt, die auch herrlich funktioniert. Die Benutzeranmeldung soll zwischen Admin und normalen Usern unterscheiden. Wenn der User ein Admin ist, soll er ins Admin Menü gelangen (AdminMenue), wenn der User ein normaler Benutzer ist, soll er ins Benutzer Menü kommen (BenutzerMenue). Wenn ich mich jetzt als Admin anmelde, werde ich sowohl als admin angemeldet, aber auch als User. Hättet ihr ne Idee wie ich den Code umbasteln könnte, dass wenn die Admin Bedingung zutrifft, dass die Benutzerbedingung gar nicht erst ausgeführt wird?
Delphi-Quellcode:
Mit vielen Grüßenprocedure TfLogin.iAnmeldenClick(Sender: TObject); begin if TBenutzer.FieldByName('Benutzername').AsString = 'Admin' then if TBenutzer.FieldByName('Kennwort').AsString = eKennwort.Text then begin ShowMessage('Anmeldung als Admin erfolgreich'); fLogin.Hide; fAdminMenue.Show; end; 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; f4k3 |
Re: Benutzerlogin if-Anweisung mit ODER ?
Erstell doch zur Abfrage if ...FieldByName('Benutzername').AsString='Admin' then noch einen else-Teil, und nur in letzterem führst du die Abfrage ...=dbeBenutzername.text durch.
|
Re: Benutzerlogin if-Anweisung mit ODER ?
Delphi-Quellcode:
So vielleicht ?
procedure TfLogin.iAnmeldenClick(Sender: TObject);
begin if TBenutzer.FieldByName('Benutzername').AsString = 'Admin' then 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; EDIT: wieso war kein roter Kasten? @Apollonius: meine Frage galt nicht Dir, es kam nur kein roter Kasten, oder wir waren zeitgleich. |
Re: Benutzerlogin if-Anweisung mit ODER ?
Zitat:
Delphi-Quellcode:
So passieren solche Fehler einfach gar nicht, da immer klar ist, welches else zu welchem if gehört.
procedure TfLogin.iAnmeldenClick(Sender: TObject);
begin if TBenutzer.FieldByName('Benutzername').AsString = 'Admin' then 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; Gruß Der Unwissende |
Re: Benutzerlogin if-Anweisung mit ODER ?
Hi,
Zitat:
Ich hatte die Original-Schreibweise des Thread-Erstellers einfach nur übernommen. Wäre es mein Code gewesen, so hätte er wohl ehr so ausgesehen:
Delphi-Quellcode:
In die then if ...-Falle bin ich glücklicherweise schon recht früh getreten und habs mir gar nicht erst angewöhnt.
procedure TfLogin.iAnmeldenClick(Sender: TObject);
begin if (TBenutzer.FieldByName('Benutzername').AsString = 'Admin') then begin if (TBenutzer.FieldByName('Kennwort').AsString = eKennwort.Text) then begin ShowMessage('Anmeldung als Admin erfolgreich'); fLogin.Hide; fAdminMenue.Show; end; end else begin 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; end; War nur zu Faul, den Code von f4k3 umzuformatieren. |
Re: Benutzerlogin if-Anweisung mit ODER ?
Danke für eure Hilfe ;)
Geht dank des "sauberen" Programmierstils ... Werds mir angewöhnen jetzt jedesmal n begin -> end mit dazu zu schreiben ;) |
Re: Benutzerlogin if-Anweisung mit ODER ?
Zitat:
|
Re: Benutzerlogin if-Anweisung mit ODER ?
Delphi-Quellcode:
sollte auch gehen :mrgreen:
procedure TfLogin.iAnmeldenClick(Sender: TObject);
begin if (TBenutzer.FieldByName('Benutzername').AsString = dbeBenutzername.Text) then begin if (TBenutzer.FieldByName('Kennwort').AsString = eKennwort.Text) then begin if (TBenutzer.FieldByName('Benutzername').AsString = 'Admin') then begin ShowMessage('Anmeldung als Admin erfolgreich'); fLogin.Hide; fAdminMenue.Show; end else begin ShowMessage('Anmeldung als Benutzer erfolgreich'); fLogin.Hide; fBenutzerMenue.Show; end; end; end; end; |
Re: Benutzerlogin if-Anweisung mit ODER ?
Zitat:
|
Re: Benutzerlogin if-Anweisung mit ODER ?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz