unit Login; interface uses 
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
Dialogs, StdCtrls, ExtCtrls, Buttons; type 
TFrmLogin = class(TForm) 
Panel1: TPanel; 
Label2: TLabel; 
Label3: TLabel; 
EdName: TEdit; 
EdPwd: TEdit; 
SbtCancle: TSpeedButton; 
SbtOk: TSpeedButton; 
procedure SbtCancleClick(Sender: TObject); 
procedure SbtOkClick(Sender: TObject); 
procedure FormActivate(Sender: TObject); 
procedure EdPwdKeyPress(Sender: TObject; var Key: Char); 
procedure EdNameKeyPress(Sender: TObject; var Key: Char); 
private 
{ Private declarations } 
public 
{ Public declarations } 
IsValid: Boolean; 
CurrUser:String; 
end; var 
FrmLogin: TFrmLogin; implementation uses Enrollment; {$R *.dfm} procedure TFrmLogin.SbtCancleClick(Sender: TObject); 
begin 
Self.Close; 
end; procedure TFrmLogin.SbtOkClick(Sender: TObject); 
var 
users:TUsers; 
begin 
try 
users :=TUsers.Create(self); 
IsValid :=users.LoginIsValid(EdName.Text,EdPwd.Text); 
if IsValid then 
begin 
self.Close; 
CurrUser :=EdName.Text ; 
end else 
begin 
MessageDlg(users.ErrPrompt ,mtError, [mbYes], 0); 
EdPwd.Text :=''; 
EdName.SelectAll; 
EdName.SetFocus; 
end; 
finally 
users.Free; 
end; 
end; procedure TFrmLogin.FormActivate(Sender: TObject); 
begin 
IsValid :=False; 
CurrUser :=''; 
EdName.SetFocus; 
end; procedure TFrmLogin.EdPwdKeyPress(Sender: TObject; var Key: Char); 
begin 
if key=#13 then SbtOk.Click; 
end; procedure TFrmLogin.EdNameKeyPress(Sender: TObject; var Key: Char); 
begin 
if key=#13 then 
if EdName.Text ='' then 
begin 
MessageDlg('用户名不能为空,请重新输入',mtError, [mbYes], 0); 
EdName.SelectAll; 
EdName.SetFocus 
end else 
EdPwd.SetFocus; 
end; end.

解决方案 »

  1.   


    unit Login; interface uses 
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
    Dialogs, StdCtrls, ExtCtrls, Buttons; type 
    TFrmLogin = class(TForm) 
    Panel1: TPanel; 
    Label2: TLabel; 
    Label3: TLabel; 
    EdName: TEdit; 
    EdPwd: TEdit; 
    SbtCancle: TSpeedButton; 
    SbtOk: TSpeedButton; 
    procedure SbtCancleClick(Sender: TObject); 
    procedure SbtOkClick(Sender: TObject); 
    procedure FormActivate(Sender: TObject); 
    procedure EdPwdKeyPress(Sender: TObject; var Key: Char); 
    procedure EdNameKeyPress(Sender: TObject; var Key: Char); 
    private 
    { Private declarations } 
    public 
    { Public declarations } 
    IsValid: Boolean; 
    CurrUser:String; 
    end; var 
    FrmLogin: TFrmLogin; implementation uses Enrollment; {$R *.dfm} procedure TFrmLogin.SbtCancleClick(Sender: TObject); 
    begin 
    Self.Close; 
    end; procedure TFrmLogin.SbtOkClick(Sender: TObject); 
    var 
    users:TUsers; 
    begin 
    try 
    users :=TUsers.Create(self); 
    IsValid :=users.LoginIsValid(EdName.Text,EdPwd.Text); //判断用户是否有效
    if IsValid then 
    begin 
    self.Close; 
    CurrUser :=EdName.Text ; 
    end else 
    begin 
    MessageDlg(users.ErrPrompt ,mtError, [mbYes], 0); 
    EdPwd.Text :=''; 
    EdName.SelectAll; 
    EdName.SetFocus; 
    end; 
    finally 
    users.Free; 
    end; 
    end; procedure TFrmLogin.FormActivate(Sender: TObject); 
    begin 
    IsValid :=False; 
    CurrUser :=''; 
    EdName.SetFocus; 
    end; procedure TFrmLogin.EdPwdKeyPress(Sender: TObject; var Key: Char); 
    begin 
    if key=#13 then SbtOk.Click; 
    end; procedure TFrmLogin.EdNameKeyPress(Sender: TObject; var Key: Char); //按键事件
    begin 
    if key=#13 then //回车
    if EdName.Text ='' then 
    begin 
    MessageDlg('用户名不能为空,请重新输入',mtError, [mbYes], 0); 
    EdName.SelectAll; 
    EdName.SetFocus 
    end else 
    EdPwd.SetFocus; 
    end; end.