unit login;interfaceuses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls,db,dbtables, ExtCtrls;type
  Tflogin = class(TForm)
    lnbox: TComboBox;
    lgok: TButton;
    lgcan: TButton;
    pwedit: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure FormShow(Sender: TObject);
    procedure lgokClick(Sender: TObject);
    procedure lgcanClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure lnboxKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure lnboxKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  flogin: Tflogin;implementation
uses datauit,pre,pubuit;
var lgtime :integer;{$R *.DFM}procedure Tflogin.FormShow(Sender: TObject);
begin
  SetBGImage(self);  fpre.hide;
  addtocombox(lnbox,fmaindata.pwtable,0);
  lgtime := 1;
  pwedit.Text :='********';
  lnbox.SetFocus;
end;procedure Tflogin.lgokClick(Sender: TObject);
var lgpw:string;
lgfound:boolean;
    lgtype:integer;
begin
  if lnbox.Text = '' then
  begin
    application.messagebox(pchar('请选择登录姓名!'),pchar('错误'),mb_ok);
    exit;
  end;  lgpw :=pwedit.text;  with fmaindata.pwtable do
  begin
    open;
    locate ('使用者',lnbox.Text,[locaseinsensitive]);    lgtype := fieldbyname('权限级别').asinteger;    if fieldbyname('密码').asstring = lgpw then
      lgfound := true
    else
      lgfound := false;
  end;  with fmaindata.sgntable do
  begin
    open;
    filtered:=false;
    append;
    fieldbyname('登录日期').asdatetime := date;
    lindate :=date ;
    fieldbyname('进入时间').asdatetime := time;
    lintime := time ;
    fieldbyname('使用者').asstring := lnbox.text;
    fieldbyname('密码').asstring := lgpw;    if lgfound  then
    begin
      fieldbyname('登录结果').asinteger := 1;
      post;
      username := lnbox.text;
      usergroup := lgtype;
      modalresult := mrok;
      exit;
    end
    else
    begin
      fieldbyname('登录结果').asinteger := 0;
      post;
    end;
  end;  lgtime := lgtime + 1;
  if lgtime < 4 then
  begin
    application.messagebox(pchar('密码错误,请重新输入!'),pchar('错误'),mb_ok);
    pwedit.Text :='********';
    pwedit.SetFocus ;
    exit;
  end
  else
    flogin.Close;
end;procedure Tflogin.lgcanClick(Sender: TObject);
begin
  flogin.Close;
end;procedure Tflogin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  action := cafree;
end;procedure Tflogin.lnboxKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 13 then abort;
end;procedure Tflogin.lnboxKeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then
  begin
    SelectNext((sender as TWinControl), true, true);
    key := #0;
  end;
end;end.