Ajuda com InputBox
Olá pessoal!
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...
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
Curtidas 0
Respostas
Gilvanio Gonçalves
02/10/2012
vc tem que declarar a unit Messages, e a constante abaixo logo após a seção uses de sua unit.
agora declare a procedure para conversão dos caracteres para PassWordChar como abaixo.
Contruindo a procedure que fará a transformção:
exemplo como deve ficar o uso de sua InputBox
espero que te ajudae, adapde ai.
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
Alisson Santos
02/10/2012
qual a necessidade de utilizar esse recurso?
GOSTEI 0
Marco Salles
02/10/2012
Hummm
ou no lugar pode també utilizar a janela
que deve funiconar
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
José
02/10/2012
Este tópico esta sendo fechado por inatividade. Se necessário, sinalizar para que seja reaberto ou abrir um novo.
GOSTEI 0