diff --git a/source/dbconnection.pas b/source/dbconnection.pas index 173f5f40..b076c4a6 100644 --- a/source/dbconnection.pas +++ b/source/dbconnection.pas @@ -1095,16 +1095,19 @@ end; procedure TDBConnection.DoBeforeConnect; var - UsernamePrompt, PasswordPrompt: String; UsingPass: String; + Dialog: TfrmLogin; begin // Prompt for password on initial connect if FParameters.LoginPrompt and (not FLoginPromptDone) then begin - UsernamePrompt := FParameters.Username; - PasswordPrompt := FParameters.Password; - LoginPrompt('Login to '+FParameters.Hostname+':', UsernamePrompt, PasswordPrompt); - FParameters.Username := UsernamePrompt; - FParameters.Password := PasswordPrompt; + Dialog := TfrmLogin.Create(Self); + Dialog.lblPrompt.Caption := 'Login to '+FParameters.Hostname+':'; + Dialog.editUsername.Text := FParameters.Username; + Dialog.editPassword.Text := FParameters.Password; + Dialog.ShowModal; + FParameters.Username := Dialog.editUsername.Text; + FParameters.Password := Dialog.editPassword.Text; + Dialog.Free; FLoginPromptDone := True; end; @@ -4601,6 +4604,7 @@ end; function mysql_authentication_dialog_ask; var Username, Password: String; + Dialog: TfrmLogin; begin { From client_plugin.h: @@ -4626,17 +4630,26 @@ begin } Username := ''; Password := ''; - case _type of - 1: Username := String(buf); - 2: Password := String(buf); - else raise EDatabaseError.Create('Unsupported type ('+IntToStr(_type)+') in mysql_authentication_dialog_ask.'); - end; - LoginPrompt(String(prompt), Username, Password, _type=1, _type=2); + Dialog := TfrmLogin.Create(nil); + Dialog.lblPrompt.Caption := String(prompt); + Dialog.editUsername.Width := Dialog.editUsername.Width + (Dialog.editUsername.Left - Dialog.lblUsername.Left); + Dialog.editPassword.Width := Dialog.editUsername.Width; + Dialog.lblUsername.Visible := False; + Dialog.lblPassword.Visible := False; + Dialog.editUsername.Left := Dialog.lblUsername.Left; + Dialog.editPassword.Left := Dialog.lblPassword.Left; + Dialog.editUsername.Top := Dialog.lblPrompt.Top + Dialog.lblPrompt.Height + 15; + Dialog.editPassword.Top := Dialog.editUsername.Top; + Dialog.editUsername.Visible := _type=1; + Dialog.editPassword.Visible := _type=2; + Dialog.ShowModal; Result := buf; case _type of - 1: Result := PAnsiChar(AnsiString(Username)); - 2: Result := PAnsiChar(AnsiString(Password)); + 1: Result := PAnsiChar(AnsiString(Dialog.editUsername.Text)); + 2: Result := PAnsiChar(AnsiString(Dialog.editPassword.Text)); + else raise EDatabaseError.Create('Unsupported type ('+IntToStr(_type)+') in mysql_authentication_dialog_ask.'); end; + Dialog.Free; end; diff --git a/source/loginform.pas b/source/loginform.pas index 779308d4..613ec207 100644 --- a/source/loginform.pas +++ b/source/loginform.pas @@ -24,7 +24,6 @@ type { Public declarations } end; - procedure LoginPrompt(ACaption: String; var AUsername, APassword: String; UsernameEnabled: Boolean=True; PasswordEnabled: Boolean=True); implementation @@ -33,24 +32,6 @@ uses helpers, main; {$R *.dfm} {$I const.inc} -procedure LoginPrompt(ACaption: String; var AUsername, APassword: String; UsernameEnabled: Boolean=True; PasswordEnabled: Boolean=True); -var - frm: TfrmLogin; -begin - // Create login box and pass back user + pass - frm := TfrmLogin.Create(nil); - frm.lblPrompt.Caption := ACaption; - frm.editUsername.Text := AUsername; - frm.editPassword.Text := APassword; - frm.editUsername.Enabled := UsernameEnabled; - frm.lblUsername.Enabled := UsernameEnabled; - frm.editPassword.Enabled := PasswordEnabled; - frm.lblPassword.Enabled := PasswordEnabled; - frm.ShowModal; - AUsername := frm.editUsername.Text; - APassword := frm.editPassword.Text; - frm.Free; -end; procedure TfrmLogin.FormCreate(Sender: TObject); @@ -61,6 +42,8 @@ begin lblPrompt.Font.Size := 10; lblPrompt.Font.Color := clHotlight; lblPrompt.Font.Style := lblPrompt.Font.Style + [fsBold]; + editUsername.Text := ''; + editPassword.Text := ''; end; procedure TfrmLogin.FormShow(Sender: TObject);