Delphi XE8 的 TMemo 中的 PasswordChar
PasswordChar in Delphi XE8's TMemo
我花了几个小时搜索 Google 看是否有人分享了他们的文章,但一无所获。
如果可能的话,我想知道如何 enable/disable Delphi XE8 的 TMemo
中的 PasswordChar
来像 TEdit
中那样隐藏用户输入。 ?也许通过复选框!
所以当复选框被选中时,所有文本都变成星号,如果复选框未被选中,所有文本恢复正常..
VCL 备忘录控件是 Win32 多行编辑的松散包装。编辑控件的密码字符功能仅适用于单行编辑。
该行为由 ES_PASSWORD
样式控制,documentation 表示:
Displays an asterisk (*) for each character typed into the edit control. This style is valid only for single-line edit controls.
FMX 备忘录控件不为多行备忘录控件提供密码字符功能。
大概这些框架没有提供您想要的,因为密码是在单行编辑控件中输入的。开发人员往往不会提供没有明确使用案例的功能。
您的选择:
- 使用单行
TEdit
。
- 编写您自己的支持所需功能的多行备忘录。
- 查找支持您所需功能的第三方多行备忘录。
现在,由于您的问题非常笼统,我假设您希望完全支持单行密码字符。也就是说,用户输入文本并且它看起来被遮盖了。
但也许您实际上不需要可编辑性。在那种情况下,它很简单。执行以下操作:
- 将真实文本加载或添加到单独的
TStringList
。
- 当您想显示真实文本时,将字符串列表分配给备忘录。
- 当你想隐藏内容时,将真实的文本处理成你想显示的内容,然后显示。
- 将备忘录控件设为只读。
if cBoxPassword.checked=false then
edtpassword.PasswordChar:='*';
if cBoxPassword.checked=true then
edtPassword.PasswordChar:=#0;
我花了几个小时搜索 Google 看是否有人分享了他们的文章,但一无所获。
如果可能的话,我想知道如何 enable/disable Delphi XE8 的 TMemo
中的 PasswordChar
来像 TEdit
中那样隐藏用户输入。 ?也许通过复选框!
所以当复选框被选中时,所有文本都变成星号,如果复选框未被选中,所有文本恢复正常..
VCL 备忘录控件是 Win32 多行编辑的松散包装。编辑控件的密码字符功能仅适用于单行编辑。
该行为由 ES_PASSWORD
样式控制,documentation 表示:
Displays an asterisk (*) for each character typed into the edit control. This style is valid only for single-line edit controls.
FMX 备忘录控件不为多行备忘录控件提供密码字符功能。
大概这些框架没有提供您想要的,因为密码是在单行编辑控件中输入的。开发人员往往不会提供没有明确使用案例的功能。
您的选择:
- 使用单行
TEdit
。 - 编写您自己的支持所需功能的多行备忘录。
- 查找支持您所需功能的第三方多行备忘录。
现在,由于您的问题非常笼统,我假设您希望完全支持单行密码字符。也就是说,用户输入文本并且它看起来被遮盖了。
但也许您实际上不需要可编辑性。在那种情况下,它很简单。执行以下操作:
- 将真实文本加载或添加到单独的
TStringList
。 - 当您想显示真实文本时,将字符串列表分配给备忘录。
- 当你想隐藏内容时,将真实的文本处理成你想显示的内容,然后显示。
- 将备忘录控件设为只读。
if cBoxPassword.checked=false then
edtpassword.PasswordChar:='*';
if cBoxPassword.checked=true then
edtPassword.PasswordChar:=#0;