📄 unitloginform.pas
字号:
unit UnitLoginForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Db, DBTables, Buttons,MainForm,Menus,IniFiles; //ghm
type
TLoginForm = class(TForm)
Image9: TImage;
LbUserName: TLabel;
EditUserID: TEdit;
EditPassword: TEdit;
LbPassword: TLabel;
Query1: TQuery;
Timer1: TTimer;
LbTimer: TLabel;
bbtnOK: TBitBtn;
bbtnClose: TBitBtn;
Query2: TQuery;
procedure BtnCancelClick(Sender: TObject);
procedure BtnExitClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure EditUserIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EditPasswordKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure bbtnCloseClick(Sender: TObject);
procedure bbtnOKClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
LoginForm: TLoginForm;
TimerLeft : integer =60;
LoginCount : integer =3;
implementation
uses Global,UnitDataModul;
{$R *.DFM}
{procedure TLoginForm.BtnOKClick(Sender: TObject);
var
s: string;
begin
if LoginCount <= 0 then Application.Terminate;
if trim(EditUserID.text) = '' then
begin
EditUserID.setfocus;
showmessage('请输入用户名!');
exit;
end;
Global.g_user.UserID:=EditUserID.Text;
Global.g_user.PassWord:=EditPassWord.Text;
with Query1 do
begin
close;
sql.Clear;
sql.Add('select * from ENT_USER where UserID='''+trim(Global.g_user.UserID)+''''+' and PassWord='''+trim(Global.g_user.PassWord)+'''' );
s:=sql.Text;
Prepare;
open;
if RecordCount=0 then
begin
close;
dec(LoginCount);
showmessage('非法用户,请核对后重新输入!');
EditUserID.Text:='';
EditPassWord.Text:='';
EditUserID.SetFocus;
exit;
end
else
Global.g_user.UserName:=FieldByName('NAME').AsString;
Global.g_user.UnitID:=FieldByName('UNIT_ID').AsInteger;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from ENT_UNIT_INFO where UNIT_ID=:UNIT_ID');
Query1.Params[0].AsInteger := Global.g_user.UnitID;
Query1.ExecSQL;
Global.g_user.UnitName:=Query1.FieldByName('UNIT_NAME').AsString;
end;
ModalResult := mrOK;
end; }
procedure TLoginForm.BtnCancelClick(Sender: TObject);
begin
EditUserID.Text:='';
EditPassWord.Text:='';
end;
procedure TLoginForm.BtnExitClick(Sender: TObject);
begin
ModalResult := mrCancel;
end;
procedure TLoginForm.Timer1Timer(Sender: TObject);
begin
dec(TimerLeft);
case TimerLeft of
1..10 :begin
LbTimer.Font.Color := clYellow;
beep;
end;
0 : begin
ModalResult := mrCancel;
//Application.Terminate;
end;
end;
LbTimer.Caption := IntToStr(TimerLeft);
end;
procedure TLoginForm.EditUserIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = VK_RETURN then
EditPassword.SetFocus;
end;
procedure TLoginForm.EditPasswordKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = VK_RETURN then BbtnOk.Click;
end;
procedure TLoginForm.FormCreate(Sender: TObject);
begin
Query1.DatabaseName:=DtMdl.Database1.DatabaseName;
end;
procedure TLoginForm.FormShow(Sender: TObject);
begin
EditUserID.SetFocus;
end;
procedure TLoginForm.bbtnCloseClick(Sender: TObject);
begin
ModalResult := mrCancel;
end;
procedure TLoginForm.bbtnOKClick(Sender: TObject);
var
s: string;
i,j,k:integer;//ghm add
len:integer;//ghm
permit:string;//ghm add0401
MenuItem:TMenuItem;//ghm
bfound:boolean;//ghm
myinifile:TInifile;
filename: string;
s1,s2:string;
begin
{ filename:=ExtractFilePath(paramstr(0))+'ywgl.ini';
myinifile:=TInifile.Create(filename);
s1:=myinifile.ReadString('unit','unitid','');
if s1<>'' then g_user.UnitID:=strtoint(s1);
g_user.UnitName:=myinifile.ReadString('unit','unitname',''); }
if LoginCount <= 0 then Application.Terminate;
if trim(EditUserID.text) = '' then
begin
EditUserID.setfocus;
showmessage('请输入用户名!');
exit;
end;
Global.g_user.UserID:=EditUserID.Text;
//IF trim(EditPassWord.Text)= '' then
//Global.g_user.PassWord:=
Global.g_user.PassWord:=EditPassWord.Text;
with Query1 do
begin
close;
sql.Clear;
sql.Add('select * from ENT_USER where USER_ID='''+trim(Global.g_user.UserID)+''''+' and PassWord='''+trim(Global.g_user.PassWord)+'''' );
s:=sql.Text;
Prepare;
open;
if RecordCount=0 then
begin
close;
dec(LoginCount);
showmessage('非法用户,请核对后重新输入!');
EditUserID.Text:='';
EditPassWord.Text:='';
EditUserID.SetFocus;
exit;
end
else
begin
Global.g_user.UserName:=FieldByName('NAME').AsString;
Global.g_user.UnitID:=FieldByName('UNIT_ID').AsInteger;
Global.g_user.USER_CODE:=FieldByName('USER_CODE').AsInteger;
///////////////////////////////////////////////////////////////////////ghm
//超级用户
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('select PERMCODE from ENT_SYS_USERRIGHTS where USER_CODE='+inttostr(Global.g_user.USER_CODE)+'');
Query2.Open;
if Query2.RecordCount>0 then
Query2.First;
while not Query2.Eof do
begin
permit:=Query2.FieldByName('PERMCODE').AsString;
{
len:=length(permit);
case len of
1..2: // //一级目录
begin
i:= strtoint(copy(permit,1,2);
FrmMain.MainMenu1.Items[i].Enabled:=true; //使对应的菜单项变为可操作
end;
3..4: //二级目录
begin
i:= strtoint(copy(permit,1,2);
j:= strtoint(copy(permit,3,2);
FrmMain.MainMenu1.Items[i].Enabled:=true; //使对应的菜单项变为可操作
FrmMain.MainMenu1.Items[i].Items[j].Enabled:=true; //使对应的菜单项变为可操作
end;
5..6: //三级目录
begin
i:= strtoint(copy(permit,1,2);
j:= strtoint(copy(permit,3,2);
k:= strtoint(copy(permit,5,2);
FrmMain.MainMenu1.Items[i].Enabled:=true; //使对应的菜单项变为可操作
FrmMain.MainMenu1.Items[i].Items[j].Enabled:=true; //使对应的菜单项变为可操作
FrmMain.MainMenu1.Items[i].Items[j].Items[k].Enabled:=true; //使对应的菜单项变为可操作
end;
else
end;
}
bfound:=false;
for i:=0 to FrmMain.MainMenu1.Items.Count-1 do
begin
// if bfound then
// break;
if strtoint(permit)= FrmMain.MainMenu1.Items[i].Tag then //一级目录
begin
FrmMain.MainMenu1.Items[i].Enabled:=true; //使对应的菜单项变为可操作
bfound:=true;
break;
end;
if FrmMain.MainMenu1.Items[i].Count>0 then //二级目录
begin
for j:=0 to FrmMain.MainMenu1.Items[i].Count-1 do
begin
if strtoint(permit)= FrmMain.MainMenu1.Items[i].Items[j].Tag then //二级目录
begin
FrmMain.MainMenu1.Items[i].Items[j].Enabled:=true; //使对应的菜单项变为可操作
break;
end;
if FrmMain.MainMenu1.Items[i].Items[j].Count>0 then //三级目录
begin
for k:=0 to FrmMain.MainMenu1.Items[i].Items[j].Count-1 do
begin
if strtoint(permit)= FrmMain.MainMenu1.Items[i].Items[j].Items[k].Tag then //三级目录
begin
FrmMain.MainMenu1.Items[i].Items[j].Items[k].Enabled:=true; //使对应的菜单项变为可操作
break;
end;
end;
end;
end;
end;
end;
Query2.Next;
end;
//////////////////////////////////////////////////////////////////////// ghm
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('select * from ENT_UNIT_INFO where UNIT_ID=:UNIT_ID');
Query2.Params[0].AsInteger := Global.g_user.UnitID;
Query2.Open;
Global.g_user.UnitName:=Query2.FieldByName('UNIT_NAME').AsString;
end;
end;
ModalResult := mrOK;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -