Dica: Máscara de Password no InputBox

26/03/2019

43

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).

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','');
Responder

Posts

puxa testei no Delphi 7 de todas as formas mas nao consegui resultado... q pena rsrs; Obrigadissimo pela dica Helio!!
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar