Delphi Inputbox 输入时显示*号

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.
 
例:
procedure TForm2.Image1DblClick(Sender: TObject);
begin
    PostMessage(Handle,InputboxMessage,0,0);
  if (inputbox('授权','请输入授权码','')='baidu.com') then
     Label5.Visible :=true
   else
   begin
     exit;
     Application.Terminate;
   end;
end;
posted @ 2020-07-06 10:54  华华软件工作室  阅读(267)  评论(0编辑  收藏  举报