1

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

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

因此,当复选框被选中时,所有文本都变成星号,如果未选中复选框,所有文本都恢复正常..

4

2 回答 2

2

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

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

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

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

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

您的选择:

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

现在,由于您的问题非常笼统,我假设您希望完全支持单行密码字符。也就是说,用户输入了文本,它看起来被屏蔽了。

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

  1. 将真实文本加载或添加到单独的TStringList.
  2. 当您想要显示真实文本时,将字符串列表分配给备忘录。
  3. 当您想隐藏内容时,将真实文本处理成您想要显示的任何内容,然后显示。
  4. 将备忘录控件设为只读。
于 2015-06-22T06:31:37.513 回答
-2
if cBoxPassword.checked=false then
edtpassword.PasswordChar:='*';
if cBoxPassword.checked=true then
edtPassword.PasswordChar:=#0;
于 2017-09-03T17:03:16.040 回答