📄 datalogin.pas
字号:
unit DataLogin;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DB, ADODB;
type
TLoginForm = class(TForm)
ED_UserName: TEdit;
ED_PassWord: TEdit;
LB_UserName: TLabel;
LB_PassWord: TLabel;
IsokBut: TBitBtn;
CennalBut: TBitBtn;
UADOQuery: TADOQuery;
procedure FormCreate(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure ED_UserNameChange(Sender: TObject);
procedure ED_UserNameKeyPress(Sender: TObject; var Key: Char);
procedure ED_PassWordKeyPress(Sender: TObject; var Key: Char);
procedure IsokButClick(Sender: TObject);
procedure CennalButClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
LoginForm: TLoginForm;
LoginIsok : Boolean; //==== 标记用户是否登陆 ====//
implementation
uses Share_Date;
{$R *.dfm}
procedure TLoginForm.FormCreate(Sender: TObject);
begin
//---- 窗口创建时的代码 ----//
LoginIsok := FALSE; //==== 初始化用户登陆标记 ====//
Share_LogName := '';
Share_Level := 2;
Share_NameDesc := '';
ED_UserName.Clear;
ED_PassWord.Clear;
end;
procedure TLoginForm.FormActivate(Sender: TObject);
begin
//---- 窗口获得焦点时的代码 ----//
ED_UserName.SetFocus;
end;
procedure TLoginForm.ED_UserNameChange(Sender: TObject);
begin
if ED_UserName.Text <> '' then IsokBut.Enabled := TRUE
else IsokBut.Enabled := FALSE;
end;
procedure TLoginForm.ED_UserNameKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then ED_PassWord.SetFocus;
end;
procedure TLoginForm.ED_PassWordKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
if IsokBut.Enabled = TRUE then IsokButClick(IsokBut)
else ED_UserName.SetFocus;
end;
procedure TLoginForm.IsokButClick(Sender: TObject);
var IBC_SqlStr, IBC_RootDir : String;
begin
IBC_RootDir := ExtractFilePath(Application.ExeName);
if IBC_RootDir[Length(IBC_RootDir)] <> '\' then IBC_RootDir := IBC_RootDir + '\';
IBC_SqlStr := 'SELECT PassWord,UserDesc,UseLevel FROM LoginData WHERE UserName=''';
IBC_SqlStr := IBC_SqlStr + Trim(ED_UserName.Text) + '''';
Try
With UADOQuery do begin
Close;
ConnectionString := Format(CONNSTRING, [IBC_RootDir, IBC_RootDir]);
SQL.Clear;
SQL.Add(IBC_SqlStr);
PrePared;
Open;
if CompareStr(Trim(FieldByName('PassWord').AsString), Trim(ED_PassWord.Text))= 0 then begin
Share_LogName := Trim(ED_UserName.Text);
Share_NameDesc := Trim(UADOQuery.FieldByName('UserDesc').AsString);
Share_Level := UADOQuery.FieldByName('UseLevel').AsInteger;
LoginIsok := TRUE;
end else begin
LoginIsok := FALSE;
ED_UserName.SetFocus;
end;
Close;
end;
Except
Application.MessageBox('程式出错,请检查后再试!!', '提示', MB_OK);
Abort();
end;
Close;
ModalResult := mrOK;
end;
procedure TLoginForm.CennalButClick(Sender: TObject);
begin
Share_LogName := '';
Share_Level := 2;
LoginIsok := TRUE;
end;
procedure TLoginForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if LoginIsok = FALSE then begin
Action := caNone;
Application.MessageBox('用户名或密码错误,请重新输入!!!', '提示', MB_OK);
end else Action := caFree;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -