📄 untlogin.pas
字号:
(*===========================================================*)
(* *)
(* Jerk Computer Assembly Manager *)
(* *)
(* 程序作者:杨芹勍 *)
(* 武汉科技大学 理学院 信息与计算科学031班 *)
(* 武汉科技大学 莘特工作室 *)
(* *)
(* IDE:Borland Delphi 2006 Update 2 *)
(* 第三方控件:Raize 4.03 *)
(* 数据库:Microsoft SQL Server 2000 *)
(* 数据库访问引擎:原生ADO(ADODB_TLB) *)
(* 数据库管理引擎:JERK DBMANAGER ALPHA *)
(* *)
(* 此软件及源代码归 JERK SYSTEM 版权所有 *)
(* (C)Copyright 2002-2006 Jerk System. *)
(* *)
(*===========================================================*)
unit untLogin;
interface
uses
Windows,
Messages,
SysUtils,
Variants,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
ExtCtrls,
StdCtrls,
Mask,
Buttons,
RzButton,
RzEdit,
RzPanel,
IniFiles,
ADODB_TLB,
JSDBConnect,
JSValidCode,
JCAMConsts,
JCAMDialogForm,
JCAMServerInfo;
type
TfrmLogin = class( TfrmJCAMDialogForm )
Label3: TLabel;
Label4: TLabel;
edtUserName: TRzEdit;
edtPassword: TRzEdit;
Label1: TLabel;
edtValidCode: TRzEdit;
btnServerInfo: TRzBitBtn;
RzPanel1: TRzPanel;
vdcLogin: TJSValidCode;
procedure btnOKClick( Sender: TObject );
procedure FormResize( Sender: TObject );
procedure FormShow( Sender: TObject );
procedure btnServerInfoClick( Sender: TObject );
procedure FormCreate( Sender: TObject );
procedure btnCancelClick( Sender: TObject );
procedure vdcLoginClick( Sender: TObject );
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmLogin: TfrmLogin;
implementation
{$R *.dfm}
uses
untTEmployee,
untMain,
untServerInfo (*,
untSplash*);
procedure TfrmLogin.btnCancelClick( Sender: TObject );
begin
inherited;
FreeAndNil( Self );
Application.Terminate;
end;
procedure TfrmLogin.btnOKClick( Sender: TObject );
var
ini: TIniFile;
te: TTableEmployee;
si: TJCAMServerInfo;
bIsCanLogin, bIsCanModify: Boolean;
sServerInfoString, sDataSource, sUserID, sPassword, sLoginName,
sLoginPassword, sValidCode: string;
begin
inherited;
Screen.Cursor := crHourGlass;
sLoginName := edtUserName.Text;
sLoginPassword := edtPassword.Text;
sValidCode := edtValidCode.Text;
if ( sLoginName = EmptyStr ) or ( sLoginPassword = EmptyStr ) then
begin
Screen.Cursor := crDefault;
vdcLogin.MakeValidCode;
Exit;
end;
// TODO: 检查验证码是否正确
if not SameText( sValidCode, vdcLogin.ValidCode ) then
begin
Screen.Cursor := crDefault;
MessageBox( Self.Handle, PChar( RSTR_LOGIN_VALIDCODEERR ),
PChar( STR_APPTITLE ), MB_ICONEXCLAMATION );
vdcLogin.MakeValidCode;
edtValidCode.Text := EmptyStr;
edtValidCode.SetFocus;
Exit;
end;
// TODO: 获取服务器信息
ini := TIniFile.Create( g_sConfigFileName );
sServerInfoString := ini.ReadString( STR_SERVERINFO, STR_SERVERINFOSTRING,
EmptyStr );
FreeAndNil( ini );
si := TJCAMServerInfo.Create;
with si do
begin
ServerInfoString := sServerInfoString;
sDataSource := DataSource;
sUserID := UserID;
sPassword := Password;
end;
FreeAndNil( si );
// TODO: 连接到 SQL Server
g_cnJCAMIS := CoConnection.Create;
if not ConMSSQL( g_cnJCAMIS, STR_APPDBNAME, sDataSource, sUserID, sPassword )
then
begin
Screen.Cursor := crDefault;
g_cnJCAMIS := nil;
MessageBox( Self.Handle, PChar( RSTR_LOGIN_LINKDBFAILED ), PChar(
STR_APPTITLE ), MB_ICONWARNING );
Exit;
end;
te := TTableEmployee.Create;
with te do
begin
Connection := g_cnJCAMIS;
// TODO: 判断用户是否合法
if CheckUserValid( sLoginName, sLoginPassword, bIsCanLogin, bIsCanModify )
then
begin
// TODO: 判断是否允许登陆
if not bIsCanLogin then
begin
MessageBox( Self.Handle, PChar( RSTR_LOGIN_USERLOCKED ),
PChar( STR_APPTITLE ), MB_ICONEXCLAMATION );
vdcLogin.MakeValidCode;
edtUserName.SetFocus;
end
else
begin
// TODO: 载入主窗体
FreeAndNil( Self );
Application.CreateForm( TfrmMain, frmMain );
// TODO: 载入启动窗体
//Application.CreateForm( TfrmSplash, frmSplash );
//frmSplash.Show;
with frmMain do
begin
LoginName := sLoginName;
StartSurf;
Show;
end;
end;
end
else
begin
Screen.Cursor := crDefault;
MessageBox( Self.Handle, PChar( RSTR_LOGIN_PWREINPUT ),
PChar( STR_APPTITLE ), MB_ICONEXCLAMATION );
vdcLogin.MakeValidCode;
edtPassword.Text := EmptyStr;
edtUserName.SetFocus;
end;
end;
FreeAndNil( te );
Screen.Cursor := crDefault;
end;
procedure TfrmLogin.btnServerInfoClick( Sender: TObject );
begin
inherited;
frmServerInfo := TfrmServerInfo.Create( Self );
frmServerInfo.ShowModal;
end;
procedure TfrmLogin.FormCreate( Sender: TObject );
begin
inherited;
g_sConfigFileName := ExtractFilePath( ParamStr( 0 ) ) + STR_CONFIGFILENAME;
vdcLogin.MakeValidCode;
(*edtUserName.Text := 'user';
edtPassword.Text := 'user';
edtValidCode.Text := vdcLogin.ValidCode; *)
end;
procedure TfrmLogin.FormResize( Sender: TObject );
begin
inherited;
btnServerInfo.SetBounds( btnOK.Left - btnServerInfo.Width - 8, btnOK.Top,
btnServerInfo.Width, btnServerInfo.Height );
end;
procedure TfrmLogin.FormShow( Sender: TObject );
begin
inherited;
FormResize( Self );
end;
procedure TfrmLogin.vdcLoginClick( Sender: TObject );
begin
inherited;
vdcLogin.MakeValidCode;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -