Dica: Máscara de Password no InputBox
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
Posts
26/03/2019
Gladstone Matos
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
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:', '');
16/05/2022
Kauan Oliveira
Clique aqui para fazer login e interagir na Comunidade :)