⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 login.pas

📁 一个delphi开发的库存管理系统源代码
💻 PAS
字号:
unit login;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, jpeg, IniFiles;

type
  Tflogin = class(TForm)
    img: TImage;
    Label1: TLabel;
    tb_name: TEdit;
    Label2: TLabel;
    tb_pwd: TEdit;
    btn_ok: TLabel;
    btn_exit: TLabel;
    lbl_title: TLabel;
    lbl_info: TLabel;
    procedure btn_okMouseLeave(Sender: TObject);
    procedure btn_okMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure btn_exitMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure btn_exitMouseLeave(Sender: TObject);
    procedure btn_exitClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure tb_nameKeyPress(Sender: TObject; var Key: Char);
    procedure tb_pwdKeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure btn_okClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  flogin: Tflogin;

implementation

uses dm, main;

{$R *.dfm}

procedure Tflogin.btn_okMouseLeave(Sender: TObject);
begin
  btn_ok.Font.Color := clNavy;
end;

procedure Tflogin.btn_okMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  btn_ok.Font.Color := clRed;
end;

procedure Tflogin.btn_exitMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  btn_exit.Font.Color := clRed;
end;

procedure Tflogin.btn_exitMouseLeave(Sender: TObject);
begin
  btn_exit.Font.Color := clNavy;
end;

procedure Tflogin.btn_exitClick(Sender: TObject);
begin
  Close;
end;

procedure Tflogin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Application.Terminate;
end;

procedure Tflogin.FormShow(Sender: TObject);
var
  myini:TIniFile;
begin
  myini := TIniFile.Create(pchar(ExtractFilePath(Application.ExeName))+'inc\set.ini');
  FLOGIN.tb_name.Text := myini.ReadString('config','user','');
  myini.Free;
  lbl_title.Caption := Application.Title;
  if fdm.conn.Connected then
    lbl_info.Caption := '数据库连接成功!'
  else
  begin
    lbl_info.Caption := '数据库连接失败!';
    tb_name.Enabled := false;
    tb_pwd.Enabled := false;
    btn_ok.Enabled := false;
    tb_name.Visible := false;
    tb_pwd.Visible := false;
    btn_ok.Visible := false;
    Label1.Visible := false;
    Label2.Visible := false;
  end;
  if (tb_name.Text <> '') and tb_name.Visible then
    tb_pwd.SetFocus;
end;

procedure Tflogin.tb_nameKeyPress(Sender: TObject; var Key: Char);
begin
  if (key = #13) and (tb_name.Text<>'')  then tb_pwd.SetFocus
  else if key=#27 then btn_exitClick(Sender);
end;

procedure Tflogin.tb_pwdKeyPress(Sender: TObject; var Key: Char);
begin
  if (key = #13) and (tb_pwd.Text<>'') then btn_okClick(Sender)
  else if Key=#27 then btn_exitClick(Sender);
end;

procedure Tflogin.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#27 then btn_exitClick(Sender);
end;

procedure Tflogin.btn_okClick(Sender: TObject);
var
  myini : TIniFile;
  id : integer;
  id2 : integer;
begin
  with fdm do
  begin
    q.Close();
    q.SQl.Text := 'select id from [user] where flag=0 and name='+AnsiQuotedStr(Trim(tb_name.Text),#39);
    try
      q.Open();
      if not q.Eof then
        id := Q.FieldValues['id']
      else
        id := 0;
    except
      id := 0;
    end;
    q.Close();
    if id<>0 then
    begin
      q.SQL.Text := 'select count(1) as cnt from [user] where flag=0 and id='+IntToStr(id)+' and pwd='+AnsiQuotedStr(Trim(tb_pwd.Text),#39);
      try
        q.Open();
        if not q.Eof then
          id2 := q.FieldValues['cnt']
        else
          id2 := 0;
      except
        id2 := 0;
      end;
      if id2=1 then
      begin
        fmain.str[4] := pchar(ExtractFilePath(Application.ExeName))+'inc\';
        myini := TiniFile.Create(fmain.str[4]+'set.ini');
        if myini.ReadString('config','user','')<>tb_name.Text then
          myini.WriteString('config','user',tb_name.Text);
        if myini.ReadString('config','save','')<>'' then fmain.str[3] := 'OK' else fmain.str[3] := '';
        if myini.ReadString('config','print','')<>'' then fmain.str[5] := 'OK' else fmain.str[5] := '';
        myini.Free;
        fmain.str[1] := tb_name.Text;
        fmain.sb.Panels[2].Text := '操作员:'+tb_name.Text;
        fmain.str[2] := IntToStr(id);
        FMAIN.Show();
        hide();
      end
      else
      begin
        ShowMessage('您所输入的密码错误,'+#13#10+'请重新输入!');
        tb_pwd.Text := '';
        tb_pwd.SetFocus;
      end;
    end
    else
      ShowMessage('您所输入的用户名错误,'+#13#10+'请重新输入!');
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -