就WindowsXP的登录一样,当我输入密码时,如果大写开关已经打开,会在输入密码的文本框旁边弹出一提示信息。  请问这是怎么实现的?是用第三方控件吗?还是有其他的方法?

解决方案 »

  1.   

    var KeyStates:TKeyboardState;GetKeyboardState(KeyStates);
    if  KeyStates[VK_CAPITAL] = 1 then Caption := '大写'
       else  Caption := '小写';
      

  2.   

    楼上大哥,感谢您提供的代码。
    但是我这里判断当前输入是大写还是小写,已经实现。
    只是想实现一种提示信息的效果,就像WindowsXP登录时输入一样,当密码输入框变成活动时,如果当前是大写,会弹出一个提示信息。
    我想问一下这个提示效果怎么实现?
      

  3.   

    在keypress事件里判断
     if key in ['A'..'Z'] then
      showmessage('大写字母');
      

  4.   

    哎呀,还是没有明白我说的意思啊。
    这里怎么就不能切图呢???
    我要的是一种提示效果,就是WindowsXP登录一样,如果当前是大写,会提示用户,但是这种提示的方式的怎么做出来的?还有托盘里的提示也是一样的啊。有一个箭头指向这个文本框的。
      

  5.   

    去搜索不规则窗体的建立方面的问题。下面一例:
    procedure TForm1.FormCreate(Sender: TObject);
    var rgn:HRGN;
    begin
    Form1.Color:=clRed;
    BeginPath(Canvas.Handle);
    SetBKMode(Canvas.Handle,TRANSPARENT);
    Canvas.Font.Name:='宋体';
    Canvas.Font.Size:=200;
    Canvas.TextOut(150,130,'黄昏狼');
    EndPath(Canvas.Handle);
    rgn:=PathToRegion(Canvas.Handle);
    SetWindowRgn(Handle,rgn,true);
    end;
      

  6.   

    你己经实现了判定的条件,你可设置hint属性,根据不同的条件设置呀。
      

  7.   

    如果你只是要求那种效果的话建议你看以下楼上 zczb(zczb) 说的,找相关的代码瞧瞧
      

  8.   

    在OnEnter事件里判断是否按下了Caps键,然后结合OnKeyPress判断获得焦点后时候按了Caps键。有箭头的提示框估计要结合第三方控件来实现