📄 login.pas
字号:
unit Login;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls, Buttons;
type
TfrmLogin = class(TForm)
Image1: TImage;
Label1: TLabel;
edtUserId: TEdit;
edtPassword: TEdit;
bbtnOK: TBitBtn;
bbtnCancle: TBitBtn;
Label2: TLabel;
procedure bbtnOKClick(Sender: TObject);
procedure bbtnCancleClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmLogin: TfrmLogin;
function gfunOpenLogin(var sUserID :string; nStatus :integer) :integer;
implementation
uses DataModual,SportMain;
var
usUserID :string; //接收用户标识
unStatus :integer; //与nStatus含义一样
unTimes :integer; // 计算用户登录次数
{$R *.dfm}
//登录表单提供出来的接口函数
function gfunOpenLogin(var sUserID :string; nStatus :integer) :integer;
begin
frmLogin :=TfrmLogin.Create(nil); //动态创建登录表单对象
unStatus :=nStatus; //将调用者参数送入unStatus变量中
unTimes :=1; //初始登录数字设为1
frmLogin.ShowModal; //显示登录界面
sUserID :=usUserID; //将登录界面的用户标识返回给调用者
Result :=0; //函数返回0值
frmLogin.Free; //释放登录表单对象
end;
procedure TfrmLogin.bbtnOKClick(Sender: TObject);
var
sPassword :string;
sConn :string;
begin
sPassword :=trim(edtPassword.Text);
usUserID :=trim(edtUserID.Text);
if usUserID = '' then
begin
application.MessageBox('没有输入用户标识','提示',mb_ok) ;
edtUserID.SetFocus ;
exit;
end;
sConn := 'Provider=OraOLEDB.Oracle.1;Password='+sPassword+
'; Persist Security Info=True;User ID='+usUserID+';Data Source=demo';
if DataModule1.connOracle.Connected then
DataModule1.connOracle.Close;
DataModule1.connOracle.ConnectionString := sConn;
DataModule1.connOracle.LoginPrompt := False;
try
DataModule1.connOracle.Open; //建立数据库的连接
close; //关闭登录界面
SportMain.frmSportMain.Show ; //显示主界面
except
application.MessageBox('输入用户标识或口令有错','提示',mb_ok);
unTimes := unTimes+1;
if unTimes >3 then
begin
application.MessageBox('您已经试图登录三次不成功,退出系统','提示',mb_ok);
application.Terminate ;
end
else
edtUserID.SetFocus ;
end;
end;
//取消登录系统
procedure TfrmLogin.bbtnCancleClick(Sender: TObject);
begin
if unStatus = 0 then //初次取消退出整个应用程序
begin
if DataModule1.connOracle.Connected then
DataModule1.connOracle.Close;
application.Terminate ;
end
else //重新登录后取消本次登录
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -