InputBox com Password

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (0)

Saiba como criar um InputBox com um Edit e máscara para senhas.

Saiba como criar um InputBox, com um Edit e máscara para senhas. Primeiramente, adicione os seguintes procedimentos:

function InputBoxPass(const ACaption, APrompt, ADefault: string): string;
 function InputSenha(const ACaption, APrompt: string; var Value: string): Boolean;
 function GetAveCharSize(Canvas: TCanvas): TPoint;

E implemente-os com o seguinte código:

function TForm1.GetAveCharSize(Canvas: TCanvas): TPoint;
 var
   I: Integer;
   Buffer: array[0..51] of Char;
 begin
   for I := 0 to 25 do Buffer[I] := Chr(I + Ord('A'));
   for I := 0 to 25 do Buffer[I + 26] := Chr(I + Ord('a'));
   GetTextExtentPoint(Canvas.Handle, Buffer, 52, TSize(Result));
   Result.X := Result.X div 52;
 end;
  
 function TForm1.InputBoxPass(const ACaption, APrompt,
   ADefault: string): string;
 begin
   Result := ADefault;
   InputSenha(ACaption, APrompt, Result);
 end;
  
 function TForm1.InputSenha(const ACaption, APrompt: string;
   var Value: string): Boolean;
 var
   Form: TForm;
   Prompt: TLabel;
   Edit: TEdit;
   DialogUnits: TPoint;
   ButtonTop, ButtonWidth, ButtonHeight: Integer;
 begin
   Result := False;
   Form := TForm.Create(Application);
   with Form do
   try
     Canvas.Font := Font;
     DialogUnits := GetAveCharSize(Canvas);
     BorderStyle := bsDialog;
     Caption := ACaption;
     ClientWidth := MulDiv(180, DialogUnits.X, 4);
     ClientHeight := MulDiv(63, DialogUnits.Y, 8);
     Position := poMainformcenter;
     Prompt := TLabel.Create(Form);
     with Prompt do
     begin
       Parent := Form;
       AutoSize := True;
       Left := MulDiv(8, DialogUnits.X, 4);
       Top := MulDiv(8, DialogUnits.Y, 8);
       Caption := APrompt;
     end;
     Edit := TEdit.Create(Form);
     with Edit do
     begin
       Parent := Form;
       Left := Prompt.Left;
       Top := MulDiv(19, DialogUnits.Y, 8);
       Width := MulDiv(164, DialogUnits.X, 4);
       {} MaxLength := 20;
       {} Passwordchar := '*';
       {} Font.Color := clBlue;
       Text := Value;
       SelectAll;
     end;
     ButtonTop := MulDiv(41, DialogUnits.Y, 8);
     ButtonWidth := MulDiv(50, DialogUnits.X, 4);
     ButtonHeight := MulDiv(14, DialogUnits.Y, 8);
     with TButton.Create(Form) do
     begin
       Parent := Form;
       Caption := 'Ok';
       ModalResult := mrOk;
       Default := True;
       SetBounds(MulDiv(38, DialogUnits.X, 4), ButtonTop, ButtonWidth, ButtonHeight);
     end;
     with TButton.Create(Form) do
     begin
       Parent := Form;
       Caption := 'Cancelar';
       ModalResult := mrCancel;
       Cancel := True;
       SetBounds(MulDiv(92, DialogUnits.X, 4), ButtonTop, ButtonWidth,ButtonHeight);
     end;
     if ShowModal = mrOk then
     begin
     Value := Edit.Text;
     Result := True;
     end;
   finally
     Form.Free;
   end;
 end;

Após, adicione um Button e um Label no formulário, e no evento nClick do botão, digite:

Label1.Caption := InputBoxPass('','','');

O resultado será igual ao da Figura 1.

InputBox.gif

Figura 1. Resultado

Autores: Jener Silva Martins (jener@terra.com.br) e Luciano Pimenta

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Ficou com alguma dúvida?