如何得知TEdit控件中的内容是否用“*”号代替??

解决方案 »

  1.   

    正常显示:Edit1.PasswordChar=#0;
    显示“*”:Edit1.PasswordChar='*';
    所以,只要判断“if Edit1.PasswordChar='*' then ... ”就行了。
      

  2.   

    看看Edit控件的PasswordChar属性就行了。
    当它为#0时是没有使用字符替代的。
      

  3.   

    如果是其它程序中的TEdit控件呢???
      

  4.   

    //try
    procedure TForm1.Button1Click(Sender: TObject);
    var
      vPasswordChar: Char;
    begin
      Byte(vPasswordChar) := SendMessage(Edit1.Handle, EM_GETPASSWORDCHAR, 0, 0);
      if vPasswordChar <> #0 then begin
        { TODO : 这里处理 }
      end;
    end;
      

  5.   

    如何判断其它程序中的TEdit控件中的内容是否用“*”号代替?
      

  6.   

    先用EnumChildWindows函数找出这个程序中所有的ClassName为TEdit(Delphi程序)或为Edit的控件,找的后使用 GetWindowLong(hEdit, GWL_STYLE)得到其扩展属性,如果具有ES_PASSWORD扩展属性,则说明为TEdit(Edit)控件中的内容是用“*”号代替的