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('授权','请输入授权码','')='5avip.net') then
     Label5.Visible :=true
   else
   begin
     exit;
     Application.Terminate;
   end;
end;
原文地址:https://www.cnblogs.com/windson/p/12505562.html