📄 enter_form.pas
字号:
unit Enter_Form;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPMenu, StdCtrls,DB,ADODB;
type
TEnter_F = class(TForm)
XM_CB: TComboBox;
MM_E: TEdit;
Label2: TLabel;
Label1: TLabel;
Exit_Btn: TButton;
Enter_Btn: TButton;
XPMenu1: TXPMenu;
procedure FormCreate(Sender: TObject);
procedure Enter_BtnClick(Sender: TObject);
procedure MM_EKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Exit_BtnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Enter_F: TEnter_F;
implementation
uses Share_Unit, Main_Form;
{$R *.dfm}
var
Logintimes:integer=0;
procedure TEnter_F.FormCreate(Sender: TObject);
var
DLYH_Q:TADOQuery;
ADOCommand:TADOCommand;
s,DataPath : string;
begin
Connect:=TADOConnection.Create(nil);
//Connect.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\Data.mdb;Persist Security Info=False';
Connect.ConnectionString:='Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Book_Data';
Connect.LoginPrompt:=false;
try
Connect.Connected:=true;
except
ADOCommand:=TADOCommand.Create(nil);
ADOCommand.ConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False';
DataPath:=ExtractFilePath(Application.ExeName) ;
s:='EXEC sp_attach_db @dbname = N'+char(39)+'Book_Data'+char(39)+','+
'@filename1 = N'+char(39)+DataPath+'Book_Data.MDF'+char(39)+
','+'@filename2 = N'+char(39)+DataPath+'Book_Data.LDF'+char(39);
ADOCommand.CommandText := s;
ADOCommand.Execute();
end;
DLYH_Q:=TADOQuery.Create(nil);
DLYH_Q.Connection:=Connect;
DLYH_Q.SQL.Clear;
DLYH_Q.SQL.Add('select 姓名 from 登录用户');
DLYH_Q.Open;
if DLYH_Q.RecordCount >0 then
while not DLYH_Q.Eof do
begin
XM_CB.Items.Add(DLYH_Q.FieldValues['姓名']);
DLYH_Q.Next;
end;
DLYH_Q.Close;
FreeAndNil(DLYH_Q);
XM_CB.ItemIndex:=0;
end;
//******************************************************************************
procedure TEnter_F.Enter_BtnClick(Sender: TObject);
var
DLYH_Q:TADOQuery;
Password:String;
begin
DLYH_Q:=TADOQuery.Create(nil);
DLYH_Q.Connection:=Connect;
DLYH_Q.SQL.Clear;
DLYH_Q.SQL.Add('select 密码,权限 from 登录用户');
DLYH_Q.SQL.Add('where 姓名=:姓名');
DLYH_Q.Parameters.ParamByName('姓名').Value:=XM_CB.Text;
DLYH_Q.Open;
if DLYH_Q.RecordCount > 0 then
begin
Password:=DLYH_Q.FieldValues['密码'];
if MM_E.Text=Password then
begin
UserName:=XM_CB.Text;
self.Hide;
QX:=DLYH_Q.FieldValues['权限'];
with TMain_F.Create(nil) do
try
ShowModal;
finally
free;
end;
end
else
begin
Logintimes:=Logintimes+1;
if Logintimes < 3 then
begin
MessageBox(handle,pchar('密码第'+IntToStr(Logintimes)+'次错误,请重新输入!'),'密码错误',MB_OK OR MB_ICONERROR);
MM_E.Text:='';
MM_E.SetFocus;
end
else
begin
MessageBox(handle,'密码三次错误请关闭!','密码错误', MB_ICONERROR);
application.Terminate;
end;
end;
end;
DLYH_Q.Close;
FreeAndNil(DLYH_Q);
end;
//******************************************************************************
procedure TEnter_F.MM_EKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_RETURN then Enter_BtnClick(Enter_Btn);
end;
//******************************************************************************
procedure TEnter_F.Exit_BtnClick(Sender: TObject);
begin
close;
end;
//******************************************************************************
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -