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

📄 chang_login.pas

📁 delphi的一个开发实例
💻 PAS
字号:
unit Chang_Login;

interface

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

type
  Tfrm_Chang_Login = class(TForm)
    GroupBox1: TGroupBox;
    Cmd_Ok: TSpeedButton;
    Cmd_Cancel: TSpeedButton;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Label4: TLabel;
    LabeledEdit1: TLabeledEdit;
    LabeledEdit2: TLabeledEdit;
    User_No: TLabeledEdit;
    User_Pwd: TLabeledEdit;
    User_Type: TComboBox;
    User_Name: TComboBox;
    XPMenu1: TXPMenu;
    procedure Cmd_OkClick(Sender: TObject);
    procedure Cmd_CancelClick(Sender: TObject);
    procedure User_TypeChange(Sender: TObject);
    procedure User_NameChange(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormShow(Sender: TObject);
    procedure User_TypeKeyPress(Sender: TObject; var Key: Char);
    procedure User_NameKeyPress(Sender: TObject; var Key: Char);
    procedure User_PwdKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
    PassTime:integer;
    tempPwd:string;
  end;

var
  frm_Chang_Login: Tfrm_Chang_Login;
  MYini: TIniFile;
  User_Type,User_Name,User_Time,User_date:String;
  MyTime,MYdate:String;
implementation

uses Main, Login, Data, func;

{$R *.dfm}

procedure Tfrm_Chang_Login.Cmd_OkClick(Sender: TObject);
begin
    inc(PassTime);
    if trim(User_Type.Text)='【超级用户】' then
    begin
        if ((User_Name.Text='system') and (User_Pwd.Text='system')) then
        begin

            Handle_Part:='【超级用户】';//操作员部门
            Handle_Man:='system';//操作员名称
            Handle_No:='';//操作员编号

            //写ini文件
            MYini:=TIniFile.Create(ExtractFileDir(application.Exename)+'\login.ini');
            MYini.WriteString('NetSeting','Login_Type','超级用户');
            MYini.WriteString('NetSeting','Login_Name',trim(User_Name.Text));
            MYini.WriteString('NetSeting','Login_No','');
            MYini.WriteString('NetSeting','Login_Date',trim(MyDate));
            MYini.WriteString('NetSeting','Login_Time',trim(MyTime));
            MYini.Free;
            frm_main:=Tfrm_Main.Create(self);
            frm_Main.ShowModal;
            frm_Login.close;
            frm_main.Free;
        end
        else
        begin
            Label4.Caption:=Format('密码错误第%d次,请重新输入:',[PassTime]);
            if PassTime>=3 then
            begin
                MessageBox(Handle,'连续输入错误密码超过3次,程序退出!',Pchar(application.Title),MB_ICONWarning);
                frm_data.ClientDataSet_Add.Active:=false;
                frm_data.ClientDataSet_Add.Close;
                frm_Data.Socket_Connection.Connected:=False;
                system.Halt;
            end
            else
            begin
                application.MessageBox('【连续输入错误密码超过3次,程序退出】'+#13#10'用户名和密码不符合!请确认后再输入!',Pchar(application.Title),MB_ICONWarning);
                User_Pwd.Text:='';
                User_Pwd.SetFocus;
            end;
        end;
    end
    else
    begin
        tempPwd:=Decrypt(trim(User_Pwd.Text),'luersoft');
        with frm_Data.ClientDataSet_Add do
        begin
            close;
            CommandText:='';
            Commandtext:='select * from [chang] where Employe_Name='''+Trim(User_Name.text)+''' and Part='''+Trim(User_Type.text)+''' and User_Pwd='''+tempPwd+'''';
            open;
            if frm_Data.ClientDataSet_Add.RecordCount=0 then
            begin
                Label4.Caption:=Format('密码错误第%d次,请重新输入:',[PassTime]);
                if PassTime>=3 then
                begin
                    MessageBox(Handle,'连续输入错误密码超过3次,程序退出!',Pchar(application.Title),MB_ICONWarning);
                    frm_data.ClientDataSet_Add.Active:=false;
                    frm_data.ClientDataSet_Add.Close;
                    frm_Data.Socket_Connection.Connected:=False;
                    system.Halt;
                end
                else
                begin
                    application.MessageBox('[连续输入错误密码超过3次,程序退出]'+#13#10'用户名和密码不符合!请确认后再输入!',Pchar(application.Title),MB_ICONWarning);
                    User_Pwd.Text:='';
                    User_Pwd.SetFocus;
                end;
            end
            else
            begin
                Handle_Part:=Trim(User_Type.Text);//操作员部门
                Handle_Man:=Trim(User_Name.Text);//操作员名称
                Handle_No:=Trim(User_No.Text);//操作员编号
                //写ini文件
                MYini:=TIniFile.Create(ExtractFileDir(application.Exename)+'\login.ini');
                MYini.WriteString('NetSeting','Login_Type',Trim(User_Type.Text));
                MYini.WriteString('NetSeting','Login_Name',Trim(User_Name.Text));
                MYini.WriteString('NetSeting','Login_No',Trim(User_No.Text));
                MYini.WriteString('NetSeting','Login_Date',Trim(MyDate));
                MYini.WriteString('NetSeting','Login_Time',Trim(MyTime));
                Myini.Free;
                //显示主窗体
                frm_main:=Tfrm_Main.Create(self);
                frm_Main.ShowModal;
                frm_Login.close;
                frm_main.Free;
            end;
        end;
    end;
end;

procedure Tfrm_Chang_Login.Cmd_CancelClick(Sender: TObject);
begin
    frm_data.ClientDataSet_Add.Active:=false;
    frm_data.ClientDataSet_Add.Close;
    frm_Data.Socket_Connection.Connected:=False;
    Close;
end;

procedure Tfrm_Chang_Login.User_TypeChange(Sender: TObject);
begin
    User_Name.Clear;
    if Trim(User_Type.Text)='【请选择部门】' then
    begin
        Application.MessageBox('操作错误,请选择所属部门!请确认!',Pchar(application.Title),MB_ICONWarning);
        User_Type.Text:='';
        Exit;
    end;
    if Trim(User_Type.Text)='【超级用户】' then
    begin
        User_Name.Clear;
        User_Name.Items.Add('system');
    end;
    with frm_data.ClientDataSet_Add do
    begin
        Close;
        CommandText:='';
        CommandText:='Select * from [chang] where Part='''+Trim(User_Type.Text)+'''';
        Open;
        while (not frm_data.ClientDataSet_Add.Eof) do
        begin
            User_Name.Items.Add(frm_data.ClientDataSet_Add.FieldValues['Employe_Name']);
            Next;
        end;
    end;
end;

procedure Tfrm_Chang_Login.User_NameChange(Sender: TObject);
begin
    if Trim(User_Type.Text)='【请选择部门】' then
    begin
        Application.MessageBox('操作错误,请选择所属部门!请确认!',Pchar(application.Title),MB_ICONWarning);
        User_Type.Text:='';
        Exit;
    end;
    if ((Trim(User_Type.Text)<>'【超级用户】') or (Trim(User_Name.Text)<>'system')) then
    begin
        with frm_data.ClientDataSet_Add do
        begin
            Close;
            CommandText:='';
            CommandText:='Select * from [Employee] where Part_name='''+Trim(User_Type.Text)+''' and Employee_name='''+Trim(User_Name.Text)+'''';
            Open;
            User_No.Text:=frm_data.ClientDataSet_Add.FieldValues['Employee_NO'];
        end;
    end
    else
    begin
        User_No.Clear;
    end;
end;

procedure Tfrm_Chang_Login.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
    frm_data.ClientDataSet_Add.Active:=false;
    frm_data.ClientDataSet_Add.Close;
    frm_Data.Socket_Connection.Connected:=False;
    Action:=Cafree;
end;

procedure Tfrm_Chang_Login.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
    frm_data.ClientDataSet_Add.Active:=false;
    frm_data.ClientDataSet_Add.Close;
    frm_Data.Socket_Connection.Connected:=False;
    Close;
end;

procedure Tfrm_Chang_Login.FormShow(Sender: TObject);
begin
    User_Type.SetFocus;
    User_Type.ItemIndex:=0;
    User_Name.Items.Add('system');
    with frm_data.ClientDataSet_Add do
    begin
        Close;
        Commandtext:='';
        Commandtext:='select distinct Part from [chang]';
        open;
        first;
        while not eof do
        begin
            User_Type.Items.Add(frm_data.ClientDataSet_Add.FieldValues['Part']);
            Next;
        end;
    end;
    with frm_data.ClientDataSet_Add do
    begin
        Close;
        Commandtext:='';
        Commandtext:='select Employe_Name from [chang]';
        open;
        first;
        while not eof do
        begin
            User_Name.Items.Add(frm_data.ClientDataSet_Add.FieldValues['Employe_Name']);
            Next;
        end;
    end;
end;

procedure Tfrm_Chang_Login.User_TypeKeyPress(Sender: TObject;
  var Key: Char);
begin
    if Key=#13 then
    begin
        User_Name.SetFocus;
    end;
end;

procedure Tfrm_Chang_Login.User_NameKeyPress(Sender: TObject;
  var Key: Char);
begin
    if Key=#13 then
    begin
        User_Pwd.SetFocus;
    end;
end;

procedure Tfrm_Chang_Login.User_PwdKeyPress(Sender: TObject;
  var Key: Char);
begin
    if Key=#13 then
    begin
        Cmd_Ok.Click;
    end;
end;

end.

⌨️ 快捷键说明

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