怎样让delphi的inputbox输入框显示密码代表符

 我来答
windblast
2017-09-08 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13622
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部

delphi 的 inputBox 函数,定义于 Dialogs 单元,其代码如下:

代码的核心是调用的 InputQuery 函数:


通常情况下 InputBox 是不显示密码代替符的,如果想要显示,有以下办法:

1、修改 InputQuery 函数源代码,使其支持显示密码符。

2、直接建立一个 InputBox 的窗体。

3、使用 WinAPI 函数,查找 InputBox 的窗体,然后发送 EM_SETPASSWORDCHAR 消息。

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

const InputboxMessage = WM_USER + 200;   //定义消息

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
  procedure InputboxPassword(var MSG: TMessage); message InputBoxMessage;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  PostMessage(Handle,InputboxMessage,0,0);             //发送消息
  inputbox('a','b','ssss')
end;

procedure TForm1.InputboxPassword(var MSG: TMessage);
var
  InputForm,Hedit: THandle;
begin
  InputForm:= Screen.Forms[0].Handle;
  if InputForm <> 0 then
  begin
  Hedit:= FindWindowEx(InputForm,0,'Tedit',nil);
  SendMessage(Hedit,EM_SETPASSWORDCHAR,Ord('*'),0);
end;

end;

end.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式