繁体   English   中英

Delphi XE8 的 TMemo 中的 PasswordChar

[英]PasswordChar in Delphi XE8's TMemo

我花了几个小时在谷歌上搜索,看看是否有人分享了他们的文章,但空手而归。

如果可能,我想知道如何在 Delphi XE8 的TMemo启用/禁用PasswordChar以隐藏用户输入,如TEdit ? 也许通过一个复选框!

因此,当检查复选框时,所有文本都转向星号,如果复选框未被选中,则所有文本都会重新恢复正常..

VCL 备忘录控件是围绕 Win32 多行编辑的松散包装。 编辑控件的密码字符功能仅适用于单行编辑。

该行为由文档所述的ES_PASSWORD样式控制:

为输入到编辑控件中的每个字符显示一个星号 (*)。 此样式仅对单行编辑控件有效。

FMX 备忘录控件不为多行备忘录控件提供密码字符功能。

大概这些框架没有提供您想要的东西,因为密码是在单行编辑控件中输入的。 开发人员倾向于不提供没有明确使用案例的功能。

您的选择:

  • 使用单行TEdit
  • 编写您自己的多行备忘录,以支持您所需的功能。
  • 查找支持您所需功能的第三方多行备忘录。

现在,由于您的问题非常普遍,我假设您希望完全支持单行密码字符。 也就是说,用户输入文本并显示为蒙版。

但也许您实际上不需要可编辑性。 在这种情况下,它很简单。 请执行下列操作:

  1. 将真实文本加载或添加到单独的TStringList
  2. 当您想显示真实文本时,将字符串列表分配给备忘录。
  3. 当您想隐藏内容时,将真实文本处理成您想显示的任何内容,然后显示出来。
  4. 使备忘录控件只读。
if cBoxPassword.checked=false then
edtpassword.PasswordChar:='*';
if cBoxPassword.checked=true then
edtPassword.PasswordChar:=#0;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM