Fórum Ajuda com InputBox #425305
02/10/2012
0
Não tenho o custume de utilizar muito o InputBox, então eu gostaria de saber se há algum jeito de utilizá-lo para o usuário digitar senha, mas os caracteres teria de aparecer **** ou ####, coisa to tipo.
Tem algum jeito de fazer isso no InputBox?
Agradeço desde já qulauqer ajuda...
Vagner Almeida
Curtir tópico
+ 0Posts
04/10/2012
Gilvanio Gonçalves
Const InputBoxMsg = WM_USER + 123;
agora declare a procedure para conversão dos caracteres para PassWordChar como abaixo.
private
{ Private declarations }
procedure InputBoxSet(var Msg: TMessage); message InputBoxMsg;Contruindo a procedure que fará a transformção:
procedure TForm1.InputBoxSet(var Msg: TMessage);
var
i: integer;
begin
for i:=0 to Screen.Forms[0].ComponentCount-1 do
begin
if Screen.Forms[0].Components[i] is TEdit then
begin
With TEdit( Screen.Forms[0].Components[i] ) do
begin
PasswordChar := '*';
Clear;
end;
end;
end;
end; exemplo como deve ficar o uso de sua InputBox
var
Senha: string;
begin
PostMessage(Handle, InputBoxMsg, 0, 0);
Senha := InputBox('Autenticação', 'Informe sua senha:', '');
if Senha <> '' then
ShowMessage('A senha informada foi: ' + Senha);
end;espero que te ajudae, adapde ai.
Gostei + 0
04/10/2012
Alisson Santos
Gostei + 0
04/10/2012
Marco Salles
Contruindo a procedure que fará a transformção: #Código procedure TForm1.InputBoxSet(var Msg: TMessage); var i: integer; begin for i:=0 to Screen.Forms[0].ComponentCount-1 do begin if Screen.Forms[0].Components[i] is TEdit then begin With TEdit( Screen.Forms[0].Components[i] ) do begin PasswordChar := '*'; Clear; end; end; end; end;
ou no lugar pode també utilizar a janela
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;que deve funiconar
Gostei + 0
16/04/2013
José
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)