패스워드 다이얼로그를 제가 작성했던 예제 입니다.
여기서는 if문에서 password를 단순 비교했는데, 만
일보다 좋은 Password 다이얼로그를 만들고 싶으시면
레지스트리에 패스워드화 시켜서 저장하시고, 로그인
할 때, 저장된 패스워드의 암호화된 부분을 다시 복
호화 시켜서 비교하시면 될 겁니다.
unit logindlg;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, Db, DBTables;
type
TPasswordDlg = class(TForm)
Image1: TImage;
Panel1: TPanel;
Password: TEdit;
Edit1: TEdit;
Label2: TLabel;
Label1: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Panel2: TPanel;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
retry : Integer;
public
{ Public declarations }
end;
var
PasswordDlg: TPasswordDlg;
implementation
{$R *.DFM}
procedure TPasswordDlg.BitBtn2Click(Sender: TObject);
begin
Application.Terminate;
end;
procedure TPasswordDlg.BitBtn1Click(Sender: TObject);
var
i : Integer;
begin
Inc(retry);
if (Edit1.Text='사용자이름') and (Password.Text='비밀번호') then
begin
close;
end
else
begin
Panel2.color:=clRed;
Panel2.Caption:='인증 실패, 패스워드와 사용자이름을 다시넣으세요.';
if retry=3 then
Application.Terminate;
beep;
Edit1.Clear;
Password.Clear;
Edit1.SetFocus;
end;
end;
procedure TPasswordDlg.FormCreate(Sender: TObject);
begin
retry:=0;
end;
end.
폼 화일 구성도
┌───────────────────────────────┐
│┌────────┐ ┌────────────────┐ │
││ │ │ 사용자 로그인 Edit (Edit1) │ │
││ │ └────────────────┘ │
││ 비트맵 그림 │ ┌────────────────┐ │
││ │ │ 패스워드 입력 Edit (Password) │ │
││ │ └────────────────┘ │
││ │ │
│└────────┘ │
├───────────────────────────────┤
│ 메시지 판넬 │
└───────────────────────────────┘
Password Edit의 컴포넌트는 TEdit1을 사용하였고, PasswordChar를 *
로 설정
메인 폼의 OnCreate Method를 사용하여 메인 프로그램보다 먼저 실행
되게 구성을 하였습니다.
그럼 도움이 되시기를...
|