PasswordInputFrm.pas 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. unit PasswordInputFrm;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5. Dialogs, StdCtrls, ExtCtrls, UtilMethods;
  6. type
  7. TPasswordInputForm = class(TForm)
  8. lePassword: TLabeledEdit;
  9. btnOk: TButton;
  10. btnCancel: TButton;
  11. imgError: TImage;
  12. lblWarning: TLabel;
  13. procedure lePasswordExit(Sender: TObject);
  14. procedure btnOkClick(Sender: TObject);
  15. procedure lePasswordKeyPress(Sender: TObject; var Key: Char);
  16. procedure lePasswordKeyDown(Sender: TObject; var Key: Word;
  17. Shift: TShiftState);
  18. private
  19. procedure CheckPassword;
  20. public
  21. end;
  22. function InputPassword(var APassword: string): Boolean;
  23. implementation
  24. function InputPassword(var APassword: string): Boolean;
  25. var
  26. InputForm: TPasswordInputForm;
  27. begin
  28. InputForm := TPasswordInputForm.Create(nil);
  29. try
  30. if InputForm.ShowModal = mrOk then
  31. begin
  32. Result := True;
  33. APassword := InputForm.lePassword.Text;
  34. end
  35. else
  36. Result := False;
  37. finally
  38. InputForm.Free;
  39. end;
  40. end;
  41. {$R *.dfm}
  42. procedure TPasswordInputForm.CheckPassword;
  43. begin
  44. imgError.Visible := not CheckValidPassword(lePassword.Text);
  45. lblWarning.Visible := not CheckValidPassword(lePassword.Text);
  46. end;
  47. procedure TPasswordInputForm.lePasswordExit(Sender: TObject);
  48. begin
  49. CheckPassword;
  50. end;
  51. procedure TPasswordInputForm.btnOkClick(Sender: TObject);
  52. begin
  53. CheckPassword;
  54. if CheckValidPassword(lePassword.Text) then
  55. ModalResult := mrOk;
  56. end;
  57. procedure TPasswordInputForm.lePasswordKeyPress(Sender: TObject;
  58. var Key: Char);
  59. begin
  60. if not (Key in ['a'..'z', 'A'..'Z', '0'..'9', #8, #13]) then
  61. Key := #0;
  62. end;
  63. procedure TPasswordInputForm.lePasswordKeyDown(Sender: TObject;
  64. var Key: Word; Shift: TShiftState);
  65. begin
  66. if Key = 13 then
  67. btnOk.Click;
  68. end;
  69. end.