Dica: Máscara de Password no InputBox
Lá nas primeiras versões do Delphi havia um truque que permitia de forma simples colocar máscara de password no InputBox, bastando antes do parâmetro de texto colocar um * (asterisco).
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á:
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(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
Curtidas 2
Respostas
Gladstone Matos
26/03/2019
puxa testei no Delphi 7 de todas as formas mas nao consegui resultado... q pena rsrs; Obrigadissimo pela dica Helio!!
GOSTEI 0
Kauan Oliveira
26/03/2019
Lá nas primeiras versões do Delphi havia um truque que permitia de forma simples colocar máscara de password no InputBox, bastando antes do parâmetro de texto colocar um * (asterisco).
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á:
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(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
Emerson Nascimento
26/03/2019
talvez tenha a ver com o caractere escolhido.
precisa ser um caractere cujo código ASCII seja menor que 32.
tente com 9 (Tab)
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
Kauan Oliveira
26/03/2019
Então, tentei aqui e ele literalmente deu um tab na linha kkk vou testar com as outras opções!
GOSTEI 0