📄 loginunit.pas
字号:
unit LoginUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DB, ADODB, StdCtrls, Buttons,iniFiles;
type
TfrmLogin = class(TForm)
Panel1: TPanel;
Image1: TImage;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
OperatorIDEdit: TEdit;
PwdEdit: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
LoginQuery: TADOQuery;
Panel3: TPanel;
Label3: TLabel;
HostEdit: TEdit;
DBEdit: TEdit;
Label4: TLabel;
SpeedButton1: TSpeedButton;
AdvanceBtn: TSpeedButton;
SpeedButton3: TSpeedButton;
procedure BitBtn1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure AdvanceBtnClick(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
procedure CheckValue();{ Private declarations }
procedure SaveIni();
public
// Settings:TSetupConfig;{ Public declarations }
end;
var
frmLogin: TfrmLogin;
implementation
uses DataModuleUnit, MainUnit, CommonUnit;
{$R *.dfm}
//保存配置信息
procedure TfrmLogin.SaveIni();
begin
with frmMain.Settings do
begin
SetHost:=HostEdit.Text;
SetDataBaseName:=DBEdit.Text;
SaveConfig;
end;
end;
//检查Edit是否为空
procedure TfrmLogin.CheckValue();
begin;
if Trim(OperatorIDEdit.Text)='' then
begin
ShowMessage('用户名不能为空!');
abort;
end;
if Trim(PwdEdit.Text)='' then
begin
ShowMessage('密码不能为空!');
abort;
end;
end;
//用户登录
procedure TfrmLogin.BitBtn1Click(Sender: TObject);
begin
self.CheckValue;
with LoginQuery do
begin
Parameters.Clear;//添加参数
Parameters.CreateParameter('@OperatorID',ftstring,pdinput,8,self.OperatorIDEdit.Text);
Parameters.CreateParameter('@OperatorID',ftstring,pdinput,8,self.PwdEdit.Text);
Open;
end;
if loginQuery.RecordCount>0 then
begin //记录登录信息
with frmMain.OperatorInfo do
begin
OperatorID:=LoginQuery.Fields[0].AsString;
OperatorPWD:=loginQuery.Fields[1].AsString;
OperatorPower[1]:=strtobool(LoginQuery.Fields[2].AsString);
OperatorPower[2]:=strtobool(LoginQuery.Fields[3].AsString);
OperatorPower[3]:=strtobool(LoginQuery.Fields[4].AsString);
OperatorPower[4]:=strtobool(LoginQuery.Fields[5].AsString);
OperatorName:=LoginQuery.Fields[6].AsString;
frmMain.StatusBar1.Panels[1].Text:=OperatorID;
frmMain.StatusBar1.Panels[3].Text:=OperatorName;
end;
LoginQuery.Close;
frmMain.Settings.LastOperatorID:=OperatorIDEdit.Text; //保存用户名
frmMain.Settings.SaveConfig;
close;
end
else
begin
ShowMessage('你输入的用户名或密码错误!');
LoginQuery.Close;
end;
end;
procedure TfrmLogin.FormActivate(Sender: TObject);
begin
LoginQuery.Connection:=frmDataModule.Connection;
OperatorIDEdit.Text:=frmMain.Settings.LastOperatorID;
end;
procedure TfrmLogin.BitBtn2Click(Sender: TObject);
begin
Application.Terminate;
end;
procedure TfrmLogin.AdvanceBtnClick(Sender: TObject);
begin
AdvanceBtn.Enabled:=false;
self.Height:=340;
panel3.Visible:=true;
end;
procedure TfrmLogin.SpeedButton3Click(Sender: TObject);
begin
self.Height:=270;
panel3.Visible:=false;
AdvanceBtn.Enabled:=true;
end;
procedure TfrmLogin.FormCreate(Sender: TObject);
begin
self.Height:=270;
HostEdit.Text:=frmMain.Settings.SetHost;
DBEdit.Text:=frmMain.Settings.SetDataBaseName;
end;
procedure TfrmLogin.SpeedButton1Click(Sender: TObject);
begin
if Trim(HostEdit.Text)='' then
begin
ShowMessage('IP/主机名不能为空!');
HostEdit.SetFocus;
abort;
end;
if Trim(DBEdit.Text)='' then
begin
ShowMessage('数据库名不能为空!');
DBEdit.SetFocus;
abort;
end;
self.SaveIni();
Application.MessageBox('保存成功,请重新启动本系统!','提示',mb_ok);
WinExec(pchar(paramstr(0)),0);
Application.Terminate;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -