PasswordEdit.pas 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. unit PasswordEdit;
  2. {
  3. Inno Setup
  4. Copyright (C) 1997-2018 Jordan Russell
  5. Portions by Martijn Laan
  6. For conditions of distribution and use, see LICENSE.TXT.
  7. This unit provides a true password edit.
  8. }
  9. interface
  10. uses
  11. Windows, Classes, Controls, StdCtrls;
  12. type
  13. TPasswordEdit = class(TCustomEdit)
  14. private
  15. FPassword: Boolean;
  16. procedure SetPassword(Value: Boolean);
  17. protected
  18. procedure CreateParams(var Params: TCreateParams); override;
  19. public
  20. constructor Create(AOwner: TComponent); override;
  21. published
  22. property Anchors;
  23. property AutoSelect;
  24. property AutoSize;
  25. property BorderStyle;
  26. property CharCase;
  27. property Color;
  28. property Ctl3D;
  29. property DragCursor;
  30. property DragMode;
  31. property Enabled;
  32. property Font;
  33. property HideSelection;
  34. property MaxLength;
  35. property OEMConvert;
  36. property ParentColor;
  37. property ParentCtl3D;
  38. property ParentFont;
  39. property ParentShowHint;
  40. property Password: Boolean read FPassword write SetPassword default True;
  41. property PopupMenu;
  42. property ReadOnly;
  43. property ShowHint;
  44. property TabOrder;
  45. property TabStop;
  46. property Text;
  47. property Visible;
  48. property OnChange;
  49. property OnClick;
  50. property OnDblClick;
  51. property OnDragDrop;
  52. property OnDragOver;
  53. property OnEndDrag;
  54. property OnEnter;
  55. property OnExit;
  56. property OnKeyDown;
  57. property OnKeyPress;
  58. property OnKeyUp;
  59. property OnMouseDown;
  60. property OnMouseMove;
  61. property OnMouseUp;
  62. property OnStartDrag;
  63. end;
  64. procedure Register;
  65. implementation
  66. uses
  67. BidiUtils;
  68. procedure Register;
  69. begin
  70. RegisterComponents('JR', [TPasswordEdit]);
  71. end;
  72. { TPasswordEdit }
  73. constructor TPasswordEdit.Create(AOwner: TComponent);
  74. begin
  75. inherited;
  76. FPassword := True;
  77. end;
  78. procedure TPasswordEdit.CreateParams(var Params: TCreateParams);
  79. begin
  80. inherited;
  81. if FPassword then
  82. Params.Style := Params.Style or ES_PASSWORD;
  83. SetBiDiStyles(Self, Params);
  84. end;
  85. procedure TPasswordEdit.SetPassword(Value: Boolean);
  86. begin
  87. if FPassword <> Value then begin
  88. FPassword := Value;
  89. RecreateWnd;
  90. end;
  91. end;
  92. end.