📄 login.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 + -