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

📄 passwordunit.pas

📁 不可多得的大型公司公资管理系统软件.该系统用DELPHI来实现.
💻 PAS
字号:
unit PassWordUnit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, RXCtrls, ExtCtrls, Buttons, DBCtrls, Mask, Db, DBTables,
  ComCtrls, lmdclass, lmdformA;

type
  TPassWord = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Bevel1: TBevel;
    Edit1: TEdit;
    DBC1: TComboBox;
    Table1: TTable;
    DataSource1: TDataSource;
    Label4: TLabel;
    UpDown1: TUpDown;
    Label2: TLabel;
    Edit4: TEdit;
    UpDown2: TUpDown;
    Label3: TLabel;
    MaskEdit1: TMaskEdit;
    Label1: TLabel;
    Label5: TLabel;
    SpeedButton9: TSpeedButton;
    SpeedButton1: TSpeedButton;
    LMDForm1: TLMDForm;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure DBC1Exit(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure DBC1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure SpeedButton9Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  PassWord: TPassWord;
  Fan,passd,iii:integer;
implementation
   uses datatunit, MAINUNIT, CnDateUnit;
{$R *.DFM}


procedure TPassWord.BitBtn1Click(Sender: TObject);
//var st:string;
begin
 with datat.Table3 do
    begin
       indexfieldnames:='user';
      if findkey([password.dbc1.text]) then
        begin
       { table1.open;
        table1.Edit;
        table1.Append;
        table1.fieldbyname('dt').asstring:=datetimetostr(now);
        table1.fieldbyname('zt').asstring:='开始登录';
        table1.FieldByName('user').asstring:=dbc1.Text;
        table1.post;
        table1.edit;}

//        gotokey;
       if fieldbyname('pass').asstring=edit1.text then
         begin
         fan:=0;
         // application.messagebox('恭喜,恭喜,你已经进入工资系统,请注意,为了提高数据的保密性能,请注意定期更改密码,以防泄漏.','提示框',mb_ok+mb_iconinformation);
       //   mainform.Caption:='中心医院在职工资系统 V5.01 '+'[操作员]---'+password.DBC1.Text+'  全程退出键[ESC]';
        table1.Edit;
        table1.Append;
        table1.fieldbyname('dt').asstring:=datetimetostr(now);
        table1.fieldbyname('zt').asstring:='登录成功';
        table1.FieldByName('user').asstring:=dbc1.Text;
        table1.post;
        table1.edit;
        password.close;

         end
          else
         begin
      iii:=iii+1;
      if iii<3 then
      begin

       table1.Edit;
        table1.Append;
        table1.fieldbyname('dt').asstring:=datetimetostr(now);
        table1.fieldbyname('zt').asstring:='登录失败'+inttostr(iii)+'次';
        table1.FieldByName('user').asstring:=dbc1.Text;
        table1.Post;
        table1.Edit;
      application.messagebox('非法用户,请再试一次,你共有三次机会','警告!!!',mb_iconstop);
      edit1.text:='';
      edit1.setfocus;
      end
      else
     begin
      application.messagebox('非法用户,你无权使用,请向使用者咨询密码','提示框',mb_ok+mb_iconinformation);
      table1.Edit;
        table1.Append;
        table1.fieldbyname('dt').asstring:=datetimetostr(now);
        table1.fieldbyname('zt').asstring:='登录失败'+inttostr(iii)+'次';
        table1.FieldByName('user').asstring:=dbc1.Text;
        table1.Post;
        table1.Edit;

      application.Terminate;

     end;
   end;
  end;
  end;
end;

procedure TPassWord.BitBtn2Click(Sender: TObject);
begin
fan:=0;
        table1.open;
        table1.Edit;
        table1.Append;
        table1.fieldbyname('dt').asstring:=datetimetostr(now);
        table1.fieldbyname('zt').asstring:='取消登录';
        table1.FieldByName('user').asstring:=dbc1.Text;
        table1.post;
//        table1.edit;
      //  close;

        if passd=0 then
 application.Terminate
 else close;
end;

procedure TPassWord.FormShow(Sender: TObject);
begin
      iii:=0;
      dbc1.Items.Clear;
      if datat=nil then
      Application.CreateForm(Tdatat,datat);
      if  passd=0 then
      Begin
        dbc1.Items.Clear;
        //日期
        maskedit1.Text:=copy(datetostr(date),1,4);
        edit4.Text:=inttostr(strtoint(copy(datetostr(date),6,2)));
        end;
        with datat.table3 do begin
        Open;
        first;
        while not eof do
        begin
        dbc1.Items.Add(datat.table3.fieldbyname('user').asstring);
        next;
        end;
        first;
        end;
        edit1.setfocus;
        dbc1.ItemIndex:=0;
//        edit2.Text:=datat.Table3.FieldByName('level').AsString;
//        dbc1.Text:=datat.table3.fieldbyname('user').asstring;
end;

procedure TPassWord.DBC1Exit(Sender: TObject);
begin

   with datat.table3 do
   begin
     if findkey([password.dbc1.text]) then
        begin
//        edit2.text:=fieldbyname('level').asstring;
        end;
   end;
end;
{ ************************** Create Procedure for Table Utd ************************** }
Procedure CreateUtdtable(PathToTable : String);
begin
  with TTable.Create(Application) do
  begin
    Active := False;
    DatabaseName := PathToTable;
    TableName := 'Utd';
    TableType := ttDefault;
    FieldDefs.Add('User', ftString, 10, False);
    FieldDefs.Add('Dt', ftString, 20, False);
    FieldDefs.Add('Zt', ftString, 10, False);
    CreateTable;
    Free;
  end;
end;
{ ************************** Create Procedure for Table para ************************** }
Procedure CreateParatable(PathToTable : String);
begin
  with TTable.Create(Application) do
  begin
    Active := False;
    DatabaseName := PathToTable;
    TableName := 'para';
    TableType := ttparadox;
    FieldDefs.Add('User', ftString, 20, False);
    FieldDefs.Add('Level', ftString, 10, False);
    FieldDefs.Add('Pass', ftString, 10, False);
    IndexDefs.Add('', 'User', [ixPrimary, ixUnique]);
    CreateTable;
    Free;
  end;
end;


procedure TPassWord.FormCreate(Sender: TObject);
begin
    if not (fileexists(ExtractFileDir(Application.EXEName)+'\utd.db')) then
     CreateUtdtable(ExtractFileDir(Application.EXEName));
    if not (fileexists(ExtractFileDir(Application.EXEName)+'\para.db')) then
begin
    Createparatable(ExtractFileDir(Application.EXEName));
    password.Caption:='您是第一次运行本程序,请退出重新启动!!!';
    bitbtn1.Enabled:=false;
{    dbc1.Enabled:=false;
    edit1.Enabled:=false;
    maskedit1.Enabled:=false;
    edit4.Enabled:=false;
    updown1.Enabled:=false;
    updown2.Enabled:=false;}
    with datat.Table3 do
    begin
    Open;
    edit;
    FieldByName('user').AsString:='1234';
    FieldByName('pass').AsString:='8888';
    post;
    Close;
    end;
    end;
    table1.DatabaseName:=ExtractFileDir(Application.EXEName);
         fan:=1;
//局部变量 判断是否是第一次登录
        passd:=0;
        session.AddPassword('fnblkzydlk');
        table1.open;
        table1.Edit;
        table1.Append;
        table1.fieldbyname('dt').asstring:=datetimetostr(now);
        table1.fieldbyname('zt').asstring:='开始登录';
        table1.FieldByName('user').asstring:=dbc1.Text;
        table1.post;
end;


procedure TPassWord.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var ddd,sss:string;
begin
   password.Caption:='用户登录';
   if (strtoint((edit4.Text))>strtoint(copy(datetostr(date),6,2))) or (strtoint((maskedit1.Text))>strtoint(copy(datetostr(date),1,4)))
   then
   begin
   ddd:=password.maskedit1.text+'-'+inttostr(strtoint(password.edit4.text));
   sss:=copy(datetostr(date),1,4)+'-'+copy(datetostr(date),6,2)+'-'+copy(datetostr(date),9,10);
 if MessageBox(Handle,pchar('您所选择的日期'+ddd+'比现在'+sss+'晚,进行吗?'),pchar(caption),mb_iconinformation+mb_okcancel)
   =mrok then
   canclose:=true
   else
   canclose:=false;
   end;

   if fan=0 then
   canclose:=true
   else
   canclose:=false;

end;

procedure TPassWord.DBC1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key in[vk_RETURN] then
begin
sendmessage(handle,wm_nextdlgctl,0,0);
end;
end;


procedure TPassWord.SpeedButton9Click(Sender: TObject);
begin
application.messagebox('初始用户1234,初始密码8888','提示框',mb_ok+mb_iconinformation);
edit1.Text:='';
edit1.Text:='8888';
end;


procedure TPassWord.SpeedButton1Click(Sender: TObject);
begin
     application.CreateForm(TCnDateForm,CnDateForm);
     CnDateForm.showmodal;
     CndateForm.release;
end;


end.

⌨️ 快捷键说明

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