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

📄 p_password.pas

📁 超市系统超市系统超市系统超市系统超市系统超市系统超市系统超市系统超市系统超市系统超市系统超市系统超市系统超市系统
💻 PAS
字号:
unit p_password;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Buttons, DBCtrls, jpeg,ActnList;

type
  Tf_password = class(TForm)
    Bevel1: TBevel;
    Label1: TLabel;
    Label2: TLabel;
    e_password: TEdit;
    Label3: TLabel;
    ComboBox1: TComboBox;
    Image1: TImage;
    b_ok: TSpeedButton;
    b_cancel: TSpeedButton;
    e_user: TDBLookupComboBox;

    procedure qx;  //自定义过程---登陆时用户的权限设置
    procedure b_okClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure b_cancelClick(Sender: TObject);
    procedure E_USEKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
    procedure JC_DATETIME;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure e_userKeyPress(Sender: TObject; var Key: Char);
    procedure e_passwordKeyPress(Sender: TObject; var Key: Char);   //检测系统日期时间
  private
    { Private declarations }
  public
     rz_id:longint;//保存登陆日志ID
    { Public declarations }

  end;

var
  f_password: Tf_password;
  user_name:string;   //全局变量,保存登陆系统的用户名
  
implementation

uses p_mc,p_gl,P_DM;
{$R *.dfm}
procedure tf_password.JC_DATETIME;
begin
//检测计算机日期时间是否小于上次登陆日期时间
 with dm do
  begin
    t_dl.Open;
    if t_dl['dl_date']>now then
       begin
          t_dl.Edit;
          t_dl['dl_date']:=strtodate('1900-03-20');
          t_dl.Post;
          application.MessageBox('计算机日期或时间有误,请更正!','登陆失败',mb_ok+mb_iconstop);
          f_password.Close;
       end
    else
       begin
          t_dl.Edit;
          t_dl['dl_date']:=datetostr(now);
          t_dl.Post;
         // t_dl.Close;
       end;  //endif
    t_dl.Close;
  end;       //with dm do 语句完毕
end;
procedure tf_password.qx;  //自定义过程---登陆时用户的权限设置
var
  n:integer;
  xz:boolean; //该权限是否选择
begin
 with dm,f_gl do
 begin
  t_qx.Open;
  t_qx.Filter:='user_name='''+user_name+'''';
  t_qx.Filtered:=true;
  t_qx.First;
  while not t_qx.eof do
     begin
        n:=t_qx['menu_id'];
        xz:=t_qx['menu_xz'];
        if xz then TAction(f_gl.AL.Actions[n]).Enabled:=true else TAction(f_gl.AL.Actions[n]).Enabled:=false;
        t_qx.Next;
     end;    //while ..END
  t_qx.Close;
end;         //with dm do ..END
end;
procedure Tf_password.b_okClick(Sender: TObject);
begin
  f_password.Hide;
  f_gl.Show;
end;

procedure Tf_password.SpeedButton1Click(Sender: TObject);
begin
  //确认用户密码、权限的合法性
  with dm do
    begin
       t_user.Filter:='name='''+e_user.KeyValue+'''';
       t_user.Filtered:=true;
       user_name:=t_user['name'];//记录登陆用户用户名
       if (trim(e_user.KeyValue)=trim(t_user['name']))and(trim(e_password.Text)=f_gl.jiemi(trim(t_user['password']),123)) then
          begin
            f_password.JC_DATETIME;  //检测计算机日期时间
            //写入登陆日志
            t_jrrz.Open;
            t_jrrz.Filtered:=false;
            rz_id:=t_jrrz.RecordCount+1;   //记录登录系统ID
            DM.CCJRRZ.Parameters[1].Value:=INTTOSTR(rz_id);
            DM.CCJRRZ.Parameters[2].Value:=TRIM(USER_NAME);
            DM.CCJRRZ.Parameters[3].Value:='系统登陆';
            CCJRRZ.ExecProc;
         {   t_jrrz.Edit;
            t_jrrz.Append;
            t_jrrz['rz_id']:=rz_id;
            t_jrrz['user_name']:=user_name;
            t_jrrz['menu_caption']:='系统登陆';
            t_jrrz['jrrq']:=now;
            t_jrrz['rq']:=datetostr(now);
            t_jrrz.Post;     }
            t_jrrz.Close;
            //日志写完毕 
            f_password.Hide;
            f_gl.Show;
            f_gl.ZT.Panels[2].Text:='当前操作员: '+t_user['name'];
            f_password.qx;  //调用用户的权限过程
            t_user.Filtered:=false;
            t_user.Close;
          end
       else
          begin
             t_user.Filtered:=false;
             f_password.e_password.Text:='';
             application.MessageBox('您输入的用户或口令有误,注意大小写!','提示',mb_ok+mb_iconinformation);
          end;      //endif
    end; //with .. end
end;

procedure Tf_password.b_cancelClick(Sender: TObject);
begin
  dm.ADO.Connected:=false;
  close;
end;

procedure Tf_password.E_USEKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if key=13 then e_password.SetFocus;
end;

procedure Tf_password.FormCreate(Sender: TObject);
begin
  dm.T_USER.Open;
  e_user.KeyValue:='SYSTEM';
  f_password.ShowModal;
end;

procedure Tf_password.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//  if application.MessageBox('确认退出系统吗?','退出',mb_yesno+mb_iconquestion)=idno then abort;
  application.Terminate;
end;

procedure Tf_password.e_userKeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    begin
      key:=#0;
      e_password.SetFocus;
    end;
end;

procedure Tf_password.e_passwordKeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
  begin
    key:=#0;
    b_ok.Click;
  end;
end;

end.
















⌨️ 快捷键说明

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