怎样让delphi的inputbox输入框显示密码代表符
1个回答
2017-09-08 · 知道合伙人软件行家
关注
展开全部
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.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询