📄 systemloginfm.pas.svn-base
字号:
unit systemLoginFM;
interface
{$DEFINE Test}
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, Buttons, StdCtrls,db,dbtables,dbctrls, ScktComp;
type
Tfrm_Login = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Label2: TLabel;
EdPwd: TEdit;
Label3: TLabel;
EdWorkNo: TEdit;
OverLoginTimer: TTimer;
btnReceiveMsg: TButton;
pnlCover: TPanel;
btnModify: TButton;
sbtnconfirm: TButton;
btnCancel: TButton;
Label1: TLabel;
procedure btncancelClick(Sender: TObject);
procedure btnModifyClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure EdPwdKeyPress(Sender: TObject; var Key: Char);
procedure sbtnConfirmClick(Sender: TObject);
procedure EdWorkNoKeyPress(Sender: TObject; var Key: Char);
procedure btnReceiveMsgClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
Wait_100ms : Integer;
Wait_Times : Integer;
procedure cover(cover_mode:Integer;MessageStr:String);
Procedure InsertManagerState;
public
{ Public declarations }
BLogin:Boolean;
end;
const
MaxLoginWaitSecond=30; //登录超时时间30秒
LoginCoverOpen=0;
LoginCoverClose=1;
LoginCoverChangeMsg = 99;
var
Exit_Flag : Boolean;
ReloginFlag : Boolean = False; //在程序内重新登录标志
frm_Login :Tfrm_Login;
implementation
uses
systemPH, systemDM, systemModiPwdFM;
const MaxLoginNum=3;
{$R *.DFM}
procedure Tfrm_Login.btncancelClick(Sender: TObject);
begin
BLogin:=False;
Close;
Application.MainForm.Free;
end;
procedure Tfrm_Login.btnModifyClick(Sender: TObject);
begin
//sysDM.ShowModalForm(Tfrm_ModiPwd);
end;
procedure Tfrm_Login.FormCreate(Sender: TObject);
begin
Position :=poDeskTopCenter;
end;
procedure Tfrm_Login.EdPwdKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
EdWorkNo.SetFocus;
sbtnconfirm.Click;
end;
end;
procedure Tfrm_Login.sbtnConfirmClick(Sender: TObject); //weirp, 登陆到系统中的验证信息
var
WorkID, WorkPwd, TempWorkID : string;
sSqlstr: string;
begin
{$IFDEF Test}
DMSystem.WorkName := EdWorkNo.Text;
BLogin := True;
Close;
Exit;
{$ENDIF}
cover(LoginCoverOpen,'正在与登陆到系统中,以确认身份....');
TempWorkID := DMSystem.WorkId;
BLogin := False;
WorkID := UpperCase(Trim(Edworkno.text));
WorkPwd := Trim(EdPwd.text);
sSqlstr := 'Select * from sysusers Where Upper(uid)=' + #39 + WorkID + #39 +
'and password =' + #39 + WorkPwd + #39;
if DMSystem.SQL_Querys(DMSystem.Qry_Temp, sSqlstr) then
begin
with DMSystem.Qry_Temp do
begin
DMSystem.WorkName := FieldByName('Name').AsString;
end;
// DMSystem.WorkAuthStr := DMSystem.GetAuthBitAttrib(WorkID,'1');
// DMSystem.WorkRole := DMSystem.GetAuthBitAttrib(WorkID,'2');
DMSystem.WorkId := WorkID;
DMSystem.WorkPwd := WorkPwd;
InsertManagerState;
end else
begin
cover(LoginCoverClose, '用户名或口令不正确');
Exit;
end;
BLogin:=True;
Close;
end;
PROCEDURE Tfrm_Login.cover(Cover_Mode:Integer;MessageStr:String);
VAR
m0top,m0left,m0width,m0height: Integer;
m1top,m1left,m1width,m1height: Integer;
step_i ,step_max : Integer;
Step_rate : real;
BEGIN
With self.pnlCover DO
BEGIN
Caption := MessageStr;
CASE Cover_Mode OF
0:
//显示封面
BEGIN
Step_max := 15;
m1top :=0;
m1left :=0;
m1Width :=self.ClientWidth;
m1height :=self.ClientHeight;
m0top := round(m1height/2);
m0left := round(m1width/2);
m0Width := 0;
m0height := 0;
top := m0top;
left := m0left;
width := m0Width;
height := m0Height;
VISIBLE:= TRUE;
for step_i := 1 to step_Max do
begin
Step_Rate := step_i / step_max;
top := m0top + round((m1top - m0top) * Step_Rate) ;
left := m0left + round((m1left - m0left) * step_rate);
Width := m0width + round((m1width - m0width) * step_rate);
Height := m0height + round((m1height -m0height) * step_rate);
//Refresh;
end;
top := m1top;
left := m1left;
width := m1width;
height := m1height;
END;
1:
//关闭封面
BEGIN
Step_max := 15;
m0top :=0;
m0left :=0;
m0Width :=self.ClientWidth;
m0height :=self.ClientHeight;
m1top := round(m0height/2);
m1left := round(m0width/2);
m1Width := 0;
m1height := 0;
top := m0top;
left := m0left;
width := m0Width;
height := m0Height;
VISIBLE:= TRUE;
for step_i := 1 to step_Max do
begin
Step_Rate := step_i / step_max;
top := m0top + round((m1top - m0top) * Step_Rate) ;
left := m0left + round((m1left - m0left) * step_rate);
Width := m0width + round((m1width - m0width) * step_rate);
Height := m0height + round((m1height -m0height) * step_rate);
//Refresh;
end;
top := m1top;
left := m1left;
width := m1width;
height := m1height;
END;
2:
//更换提示字串
BEGIN
END;
END;
END;
pnlCover.BringToFront;
END;
procedure Tfrm_Login.EdWorkNoKeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (EdWorkNo.Text <> '') then
EdPwd.SetFocus;
end;
procedure Tfrm_Login.btnReceiveMsgClick(Sender: TObject);
begin
BLogin:=True;
Close;
end;
procedure Tfrm_Login.FormShow(Sender: TObject);
begin
if EdWorkNo.Enabled then
EdWorkNo.SetFocus;
end;
procedure Tfrm_Login.InsertManagerState;//weirp, 插入管理者登陆状态信息
begin
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -