加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 如何强制密码编辑器的“Caps Lock is On”气球?

发布时间:2020-12-15 09:17:25 所属栏目:大数据 来源:网络整理
导读:我有一个TEDit,PasswordChar设置为*,如果Caps Lock模式打开,我想要标准的“Caps Lock is On”气球出现.该标准气球仅在编辑器获得焦点或已启用Caps Lock模式时出现,而焦点位于该编辑器中. 我的密码编辑器是应用程序的第一个集中控件.所以,当应用程序以前的Cap
我有一个TEDit,PasswordChar设置为*,如果Caps Lock模式打开,我想要标准的“Caps Lock is On”气球出现.该标准气球仅在编辑器获得焦点或已启用Caps Lock模式时出现,而焦点位于该编辑器中.

我的密码编辑器是应用程序的第一个集中控件.所以,当应用程序以前的Caps Lock模式启动时,在我的密码编辑器失去焦点然后再次聚焦之前,我看不到任何气球.用户有机会在一半的用例中看不到气球!

我可以在应用程序启动时强制执行“Caps Lock is On”气球而无需切换焦点吗?

解决方法

解决方案是调用WM_KILLFOCUS和WM_SETFOCUS,这将强制编辑器显示“Caps Lock is On”气球:

if GetKeyState(VK_CAPITAL) and 1 <> 0 then
  begin
    if edtPassword.Focused then
    begin
      PostMessage(edtPassword.Handle,WM_KILLFOCUS,0);
      PostMessage(edtPassword.Handle,WM_SETFOCUS,0);
    end;
  end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读