u_logon.pas
来自「SQL的应用」· PAS 代码 · 共 199 行
PAS
199 行
unit U_Logon;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids, DBGrids, ExtCtrls, jpeg ,ShellApi;
type
TF_Logon = class(TForm)
Edit_User: TEdit;
Edit_Pwd: TEdit;
Label_User: TLabel;
Label_Pwd: TLabel;
BitBtn_Logon: TBitBtn;
BitBtn_Leave: TBitBtn;
Image1: TImage;
Label_Me: TLabel;
Label_Endo: TLabel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label_Reg: TLabel;
procedure BitBtn_LogonClick(Sender: TObject);
procedure BitBtn_LeaveClick(Sender: TObject);
procedure Edit_UserKeyPress(Sender: TObject; var Key: Char);
procedure Edit_PwdKeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure Label_EndoClick(Sender: TObject);
procedure Label_EndoMouseEnter(Sender: TObject);
procedure Label_EndoMouseLeave(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Label_RegMouseEnter(Sender: TObject);
procedure Label_RegMouseLeave(Sender: TObject);
procedure Label_RegClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
F_Logon: TF_Logon;
count:Integer;
implementation
Uses U_DBPublicPack,U_RecordStruct,U_Report,U_Main,U_About,U_Reg;
{$R *.dfm}
procedure TF_Logon.BitBtn_LogonClick(Sender: TObject);
var
UserName,UserPwd,QryStr:String;
Power:Integer;
begin
if (Edit_User.Text='') Or (Edit_Pwd.Text='') then
Begin
Showmessage('请输入用户名和密码!');
Edit_Pwd.SetFocus;
Exit;
End
else
Begin
UserName:=Trim(Edit_User.Text);UserPwd:=Trim(Edit_Pwd.Text);
InitCreateADO;
if ConnectDataBase()=True then
with ADOQry Do
Begin
Try
DBTableName:=ReadConfig(IniFileName,'DBTableName','Logon');//获取表名
QryStr:='Select * From '+DBTableName+' Where UserName='+''''+UserName+'''';
Close;SQL.Clear;SQL.Add(QryStr);Open;
if UserPwd=trim(ADOQry.FieldByName('UserPwd').AsString) then
Begin
Power:=ADOQry.FieldByName('Power').AsInteger;
F_Main.StatusBar_DB.Panels[2].Text:='当前用户:'+F_Logon.Edit_User.Text;
F_Main.StatusBar_DB.Panels[3].Text:='权限:'+ADOQry.FieldByName('Interpret').AsString;
F_Main.Show;
F_Logon.Hide;
DBTableName:=F_Main.TreeView_DB.Items.Item[1].Text;
GetDBTableInfo(DBTableName);
DestroyDBEditAndDBText(F_main.DBGrid_DB);
CreateDBEditAndDBText(F_main.DBGrid_DB);
Case Power of
1://管理员权限 Manager
Begin
//什么也没有限制
End;
2://普通用户权限 User
Begin
F_Main.N_DataBackup.Visible:=False;
F_Main.N_DataRestore.Visible:=False;
End;
3://游客权限 Guest
Begin
F_Main.N_DataBackup.Visible:=False;
F_Main.N_DataRestore.Visible:=False;
F_Main.BitBtn_Add.Enabled:=False;
F_Main.BitBtn_Delete.Enabled:=False;
F_Main.BitBtn_Edit.Enabled:=False;
End;
4://几乎没什么权限
Begin
F_Main.N_DataBackup.Visible:=False;
F_Main.N_DataRestore.Visible:=False;
F_Main.BitBtn_Add.Enabled:=False;
F_Main.BitBtn_Delete.Enabled:=False;
F_Main.BitBtn_Edit.Enabled:=False;
F_Main.N_ToReport.Enabled:=False;
F_Main.N_ToExcel.Enabled:=False;
End;
End;
End
Else
Begin
Showmessage('对不起!你输入的用户名或密码有误,请重新输入!');
Edit_User.Text:='';Edit_Pwd.Text:='';Edit_User.SetFocus;
End;
Except
Exit;
End;
End;
End;
end;
procedure TF_Logon.BitBtn_LeaveClick(Sender: TObject);
begin
if Messagedlg('确定要离开吗?',MtWarning,MbOKCancel,0)=MrOk then
Application.Terminate
Else Edit_User.SetFocus;
end;
procedure TF_Logon.Edit_UserKeyPress(Sender: TObject; var Key: Char);
begin
If Key=#13 Then BitBtn_Logon.Click;
end;
procedure TF_Logon.Edit_PwdKeyPress(Sender: TObject; var Key: Char);
begin
If Key=#13 Then BitBtn_Logon.Click;
end;
procedure TF_Logon.FormCreate(Sender: TObject);
Var
ErrNo:Integer;
// hMutex:HWND;
begin
Label_Me.Hint:='Something must be done!'+#13+'Something never be done!'+#13;
Label_Me.Hint:=Label_Me.Hint+'Something sometimes be done!'+#13+'Just do it !';
// hMutex:=CreateMutex(Nil,False,Pchar(Application.Title));
ErrNO:=GetLastError;
If ErrNO=ERROR_ALREADY_EXISTS Then
Begin
Application.MessageBox('对不起!Endo数据库软件重复运行,即将退出','重复运行',MB_OK);
Application.Terminate;
End;
end;
procedure TF_Logon.Label_EndoClick(Sender: TObject);
var
Url:string;
begin
Url:='http://endo.533.net/';
ShellExecute(Handle,'Open',Pchar(Url),nil,nil,sw_normal);
end;
procedure TF_Logon.Label_EndoMouseEnter(Sender: TObject);
begin
Label_Endo.Font.Color:=ClBlue;
Label_Endo.Font.Style:=Label_Endo.Font.Style+[FsUnderline]
end;
procedure TF_Logon.Label_EndoMouseLeave(Sender: TObject);
begin
Label_Endo.Font.Color:=ClBlack;
Label_Endo.Font.Style:=Label_Endo.Font.Style-[FsUnderline];
end;
procedure TF_Logon.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.Terminate;
end;
procedure TF_Logon.Label_RegMouseEnter(Sender: TObject);
begin
Label_Reg.Font.Color:=ClBlue;
end;
procedure TF_Logon.Label_RegMouseLeave(Sender: TObject);
begin
Label_Reg.Font.Color:=ClBlack;
end;
procedure TF_Logon.Label_RegClick(Sender: TObject);
begin
F_Reg.Show;
F_Logon.Hide;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?