En nuestro menú para que funcione la petición de clave y no muestre los números que estamos metiendo tenemos que hacer lo siguiente, pongo el código tal cual lo baje
Código Delphi
[-]Const
InputBoxMessage = WM_USER + 200;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
procedure InputBoxSetPasswordChar(var Msg: TMessage); message InputBoxMessage;
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
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;
procedure TForm1.Button1Click(Sender: TObject);
var
InputString: string;
begin
PostMessage(Handle, InputBoxMessage, 0, 0);
InputString := InputBox('Senha', 'Digite a senha', '');
end;
Esto fue bajado de
http://www.planetadelphi.com.br/dica...rd-no-inputbox
Intentare explicarlo por encima
Justo despues de nuestro USES y antes del TYPE al principio de la unidad añadimos
En el Type en su parte private la lamada del procedimiento
Código Delphi
[-] procedure InputBoxSetPasswordChar(var Msg: TMessage); message InputBoxMessage;
Es importante la parte de message InputBoxMessage;, ya que si no la añadimos funcionara, pero no nos ocultara los dígitos por asteriscos
Y luego las dos siguientes lineas
Código Delphi
[-] PostMessage(Handle, InputBoxMessage, 0, 0); if InputBox('Comprobando seguridad', 'Por favor introduzca su clave de usuario', '') = VarClaveUSusario then
Yo lo he usado en este ejemplo en un If then, pero podira usarse como respuesta a una variable en mi caso está es en el ejemplo VarClaveUSusario