Veja neste tutorial como criar um InputBox com Password, com um Edit e máscara para senha.
Este tutorial visa auxiliar quem precisa criar um janela de mensagem
que esconda o que está sendo digitado (senha). Primeiramente crie
as seguintes funções na sua Unit:
function InputBoxPass(const ACaption, APrompt, ADefault: string): string;
function InputSenha(const ACaption, APrompt: string; var Value: string): Boolean;
function GetAveCharSize(Canvas: TCanvas): TPoint;
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;
E por fim:
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;
Finalmente, adicione um Button e um Label noformulário, e no evento onClick do botão,
digite:
Label1.Caption := InputBoxPass('Login','Senha:','');
Conclusões
Notamos neste artigo a facilidade em se criar um InputBox com
Password em detrimento de um ShowMessage comum
utilizando a ferramente Delphi 7. Forte abraço e até o próximo
tutorial.
Password em detrimento de um ShowMessage comum
utilizando a ferramente Delphi 7. Forte abraço e até o próximo
tutorial.
--
nao prescisa adicionar nem uma "use"
ResponderExcluirNão precisa adicionar nada na cláusula Use.
ExcluirEste comentário foi removido pelo autor.
ResponderExcluire nao roda pq entao???
ResponderExcluirApenas são necessários os "uses" padrões amigo:
Excluiruses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdMessage, StdCtrls;