允许用户从密码字段复制文本

Allow user to copy text from a password field

在我的应用程序中有一个 TEditPasswordChar = '*'

当用户按下 Ctrl + C 时出现提示。

已翻译:

Not Allowed

You cannot copy text from a password field.

很明显,下拉菜单中的复制项被禁用

有没有办法为密码编辑器启用复制操作?

通常的方法是在编辑字段右侧有一个按钮,允许显示密码。这可能会受到某些访问条件的限制。虽然密码可见,但也可以复制。

这只是对 Uwe Raabe's correct 的一个小扩展;请更喜欢upvote/accept他的回答。

您实际上可以选择在密码编辑控件旁边设置 两个 按钮1:

  • 一个在屏幕上显示密码(即设置 PasswordChar = #0)。这可以在按下按钮时临时进行,也可以在每次单击时在两种状态之间切换。 (如果选择第一种方法,请记住 UI 必须在没有鼠标的情况下 100% 可用,只能使用键盘。)
  • 将密码复制到剪贴板。

Firefox 提供了这种双重功能,我发现能够将密码放入剪贴板非常方便而无需在屏幕上看到它

或者,您可能需要在执行任何操作之前进行一些安全检查。例如,Firefox 要求输入主密码(如果存在)。

1 确保两个按钮都可以用鼠标和键盘使用。特别是,这意味着您 不能 使用 TSpeedButton 控件(至少不是没有额外的努力)。不过,TBitBtn 没问题。还要确保 Tab 键顺序正确:从左到右。用这个三控件群创建一个新的自定义控件是个好主意。我建议您让按钮具有工具提示:分别为 Show passwordCopy password