Fórum Dica: Máscara de Password no InputBox #601446
26/03/2019
0
InputBox(const ACaption, APrompt, ADefault: string): string;
//ou seja
inputBox('Password','*Digite sua Senha','');
Porém, com o tempo esse truque ficou esquecido e para piorar, o Delphi internamente verificava o caractere "*" comparando com o valor na tabela ASCII, o que ficou desfuncional já que o Delphi, desde a versão 2009 é Unicode.
Assim, verificando o código fonte das bibliotecas do Delphi, é possível encontrar o código que se encontra lá:
function GetPasswordChar(const ACaption: string): Char;
begin
if (Length(ACaption) > 1) and (ACaption[1] < #32) then
Result := '*'
else
Result := #0;
end;
sendo que o parânetro ACaption, na verdade ser refere ao texto da janela e não ao título, ou seja, refere-se ao parâmetro APrompt.
Para resolver este problema basta adicionar um caracter especial antes do texto e a máscara será * automáticamente:
inputBox('Password',#31+'Digite sua Senha','');
Hélio Devmedia
Curtir tópico
+ 2Posts
26/03/2019
Gladstone Matos
Gostei + 0
14/05/2022
Kauan Oliveira
InputBox(const ACaption, APrompt, ADefault: string): string;
//ou seja
inputBox('Password','*Digite sua Senha','');
Porém, com o tempo esse truque ficou esquecido e para piorar, o Delphi internamente verificava o caractere "*" comparando com o valor na tabela ASCII, o que ficou desfuncional já que o Delphi, desde a versão 2009 é Unicode.
Assim, verificando o código fonte das bibliotecas do Delphi, é possível encontrar o código que se encontra lá:
function GetPasswordChar(const ACaption: string): Char;
begin
if (Length(ACaption) > 1) and (ACaption[1] < #32) then
Result := '*'
else
Result := #0;
end;
sendo que o parânetro ACaption, na verdade ser refere ao texto da janela e não ao título, ou seja, refere-se ao parâmetro APrompt.
Para resolver este problema basta adicionar um caracter especial antes do texto e a máscara será * automáticamente:
inputBox('Password',#31+'Digite sua Senha','');
Utilizo duas versões do Delphi. Na versão 10.3.3 essa opção funcionou perfeitamente, porém na versão 2010 não deu muito certo. O campo de texto não fica com a máscara e na linha " 'Digite sua Senha' ", durante a chamada do input box, acaba saindo "igite sua Senha".
Já viu algum caso antes
Gostei + 0
14/05/2022
Emerson Nascimento
precisa ser um caractere cujo código ASCII seja menor que 32.
tente com 9 (Tab)
texto := InputBox('Senha necessária', #9'Digite a senha:', '');Gostei + 0
16/05/2022
Kauan Oliveira
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)