Zitat von
kalmi01:
Delphi-Quellcode:
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;
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 = '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;
So passieren solche Fehler einfach gar nicht, da immer klar ist, welches else zu welchem if gehört.
Gruß Der Unwissende