【问题标题】:Allow user to copy text from a password field允许用户从密码字段中复制文本
【发布时间】:2020-02-27 06:45:02
【问题描述】:

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

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

翻译:

不允许

您不能从密码字段中复制文本。

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

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

【问题讨论】:

  • 显然这是设计使然。 TEdit 是一个 Windows 通用控件。要么编写你自己的控件,要么按照 Uwe 所说的去做。这种行为有充分的理由。
  • @Fabrizio:请记住将“在此处输入图像描述”文本替换为图像所包含内容的适当摘要。否则,使用屏幕阅读器的视障人士将无法理解您的 Q。此外,Google 会发现更难以理解图像的内容。我将 ALT 文本更改为“密码模式下 Windows 编辑控件的屏幕截图,显示其“无法复制”气球。”和“密码模式下 Windows 编辑控件的屏幕截图,其上下文菜单可见;复制项已禁用。”,分别。请注意,它们确实描述了图像。
  • (否则你的问题格式很漂亮!)
  • @AndreasRejbrand:谢谢!我总是忘记添加图片描述,下次我会努力做得更好:)

标签: delphi delphi-xe7


【解决方案1】:

通常的方法是在编辑字段右侧设置一个按钮,以显示密码。这可能与某些访问条件有关。虽然密码是可见的,但它也可以被复制。

【讨论】:

    【解决方案2】:

    这只是对Uwe Raabe 的正确answer 的一个小扩展;请喜欢/接受他的回答。

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

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

    Firefox 提供了这种双重功能,我发现能够将密码放在剪贴板中非常方便它不会在屏幕上显示

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

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

    【讨论】:

    • 随意使用更漂亮的图标;我很快在 Microsoft Paint 中画了这两个。
    • 也可以尝试TButtonedEdit。虽然它只支持右侧的单个按钮,但它确实支持下拉菜单,不是吗?
    猜你喜欢
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多