Hallo.
Wenn du deinen Kennwortdialog nicht modal zeigst, dann wird dein nachfolgender Code unbedingt ausgeführt. Versuche es besser so:
Delphi-Quellcode:
function AccessAllowed: Boolean;
begin
with TPasswordDlg.Create(nil) do
begin
Result := (ShowModal = mrOK) and (PassWord.Text = 'mo');
Free;
end;
end;
Das hat den Vorteil, dass der Dialog auch wieder freigegeben wird.
Das Kennwort als Klartext im Quelltext zu speichern ist unsicher und unflexibel. Eventuell ist es für deine Zwecke schon ausreichend, wenn ein aus dem Benutzernamen abgeleiteter Zahlwert eingegeben wird. Man kann dann leicht prüfen, ob sich der eingegebene Zahlwert z.B. durch Polynomdivision aus dem Benutzernamen ergibt - und nur wer das Polynom kennt, der kann den richtigen Zahlwert angeben. Dieses Verfahren habe ich früher oft verwendet um bestimmte Funktionen im Programm nur für mich frei zu schalten.
Warum vergibst du Display-Namen als Spaltenalias in deiner Prozedur ShowDbView()?
Grüße vom marabu