Delphi 中 InputQuery 实现密码输入


本文整理自网络,侵删。

 
修改用户口令时为了避免自己建立新的口令修改窗口,借用delphi中的标准输入对话框。
实现代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
InputBoxMessage = WM_USER + 200;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure InputBoxSetPasswordChar(var Msg: TMessage); message InputBoxMessage;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
InputString: string;
begin
PostMessage(Handle, InputBoxMessage, 0, 0);
if InputQuery('Input Box', 'Please Enter a Password', InputString ) then
ShowMessage(InputString);
end;
procedure TForm1.InputBoxSetPasswordChar(var Msg: TMessage);
var
hInputForm, hEdit: HWND;
begin
hInputForm := Screen.Forms[0].Handle;
if (hInputForm <> 0) then
begin
hEdit := FindWindowEx(hInputForm, 0, 'TEdit', nil);
SendMessage(hEdit, EM_SETPASSWORDCHAR, Ord('*'), 0);
end;
end;
end.
这种方法实现的比较巧妙!重点是PostMessage(Handle, InputBoxMessage, 0, 0);
和对InputBoxMessage消息的处理!

相关阅读 >>

Delphi中for in 语法应用实例

Delphi tfilestream 的读写 合并文件

Delphi判断文件是否正在被使用

Delphi 如何清空image1

Delphi 杨辉三角

Delphi 感染u盘

Delphi 在listview控件中绘底图

Delphi 验证文件签名

Delphi 动态加载删除字体

Delphi 如何取得键盘每个键

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...