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

📄 login.pas

📁 通用题库管理系统
💻 PAS
字号:
unit login;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons,mainsrc,StrUtils,ADODB,ComCtrls, DB;

type
  Tloginform = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    login_user_name: TEdit;
    Label2: TLabel;
    login_user_pass: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    ADOCon: TADOConnection;
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure login_user_nameChange(Sender: TObject);
    procedure login_user_passChange(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  loginform: Tloginform;

implementation

{$R *.dfm}
function EnCode(BeEncode:string):string;
var index,temp:integer;
begin
temp:=ord(BeEncode[1]);
temp:=temp xor 89;
inc(temp,13);
if temp<100 then
     ReSult:='0'+inttostr(temp)
else
     ReSult:=inttostr(temp);
for index:=2 to Length(BeEncode) do
begin
     temp:=ord(BeEncode[index]);
     temp:=temp xor 89;
     Inc(temp,13);
     if temp<100 then
          ReSult:=concat(ReSult,'0',inttostr(temp))
     else
          ReSult:=concat(ReSult,inttostr(temp));
end;
end;

function DeCode(BeDecode:string):string;
var  index:integer;
begin
ReSult:='';
for index:=0 to (length(BeDecode) div 3)-1 do
    ReSult:=concat(ReSult,chr((strtoint(midstr(BeDecode,index*3+1,3))-13)  xor 89));
ReSult:=Trim(ReSult);
end;

procedure Tloginform.BitBtn2Click(Sender: TObject);
begin
application.Free;
end;

procedure Tloginform.BitBtn1Click(Sender: TObject);
var  User_Info_File:file of TPersonInfo;
     InputUserName,InputUserPass:String;
     index,tabindex:integer;
     db_tables:TStringList;
begin
InputUserName:=Trim(login_user_name.Text);
InputUserPass:=login_user_pass.Text;
login_user_pass.Text:='';
db_tables:=TStringList.Create;
if FileExists('.\gtkms.conf') then
begin
     try
          AssignFile(User_Info_File,'.\gtkms.conf');
          Reset(User_Info_File);
     except
          messagedlg(#13'读取用户配置文件时发生错误,效验用户失败!',mterror,[mbok],0);
          abort;
     end;
     repeat
          Read(User_Info_File,Current_User);
          if (Current_User.UserName=InputUserName) and (Current_User.SysPass=EnCode(InputUserPass)) then
          begin
            main.Enabled:=True;
            loginform.Visible:=False;
            for index:=0 to 19 do
                  if not (Current_User.Created_DB[index]='') then
                  if FileExists('.\database\'+Current_User.Created_DB[index]) then
                  begin
                      main.TreeView1.Items.AddChild(main.TreeView1.Items.Item[0],Current_User.Created_DB[index]);
                      main.TreeView1.Items.Item[0].Expand(True);
                      ADOCon.Close;
                      try
                        ADOCon.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\database\'+
                                        Current_User.Created_DB[index]+';Mode=Share Deny None;Persist Security Info=False;'+
                                        'Jet OLEDB:Database Password='+DeCode(Current_User.Authen_DB_Pass[index]);
                        ADOCon.Open;
                      except
                        messagedlg(#13'无法打开数据库'+Current_User.Created_DB[index]+'读取数据表信息!',mterror,[mbok],0);
                        continue;
                      end;
                      try
                        ADOCon.GetTableNames(db_tables,False);
                      except
                        messagedlg(#13'无法获取数据库 '+Current_User.Created_DB[index]+' 中的数据表信息!',mterror,[mbok],0);
                        continue;
                      end;
                      ADOCon.Close;
                      if  db_tables.Count>0 then
                      for tabindex:=0 to  db_tables.Count-1 do
                      begin
                        main.TreeView1.Items.AddChild(main.TreeView1.Items.Item[0].GetLastChild,db_tables.Strings[tabindex]);
                      end;
                  end;
            CloseFile(User_Info_File);
            abort;
          end
          else if Eof(User_Info_File) then
          begin
            CloseFile(User_Info_File);
            messagedlg(#13'用户名或密码错误,登陆失败!',mterror,[mbok],0);
            abort;
          end;
     until Eof(User_Info_File);
end
else
begin
     messagedlg(#13'找不到系统配置文件gtkms.conf,系统无法正常运行!',mterror,[mbok],0);
     application.Free;
end;

end;

procedure Tloginform.login_user_nameChange(Sender: TObject);
begin
if (length(Trim(login_user_name.Text))>0) and (length(login_user_pass.Text)>0) then
     bitbtn1.Enabled:=True
else bitbtn1.Enabled:=False;
end;

procedure Tloginform.login_user_passChange(Sender: TObject);
begin
login_user_nameChange(Sender);
end;

end.

⌨️ 快捷键说明

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