⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitlog.pas

📁 社区服务系统
💻 PAS
字号:
unit UnitLog;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ComCtrls, StdCtrls,ADODB, jpeg, Buttons;

type
  TfrmLogin = class(TForm)
    StatusLogin: TStatusBar;
    Timer1: TTimer;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    edtuser: TEdit;
    edtpsw: TEdit;
    bbtnLogin: TBitBtn;
    bbtnExit: TBitBtn;
    procedure Timer1Timer(Sender: TObject);
    procedure btnExitClick(Sender: TObject);
    procedure edtuserChange(Sender: TObject);
    procedure edtuserKeyPress(Sender: TObject; var Key: Char);
    procedure edtpswKeyPress(Sender: TObject; var Key: Char);
    procedure bbtnLoginClick(Sender: TObject);
    procedure bbtnExitClick(Sender: TObject);
  private
    { Private declarations }
  public
    {  }
  end;

var
  frmLogin: TfrmLogin;
  icount : integer;                                              //计数器,用来记录登录失败的次数,三次登录失败系统自动关闭
  adoqry : TADOQuery;       

implementation
uses UnitADOConn;
{$R *.dfm}
{
*************************************************************************************
函数名称: 时间控制事件
功能描述: 显示状态栏的信息
输入参数: 无
输出参数: 无
返回 值:  无
说   明:
*************************************************************************************
}
procedure TfrmLogin.Timer1Timer(Sender: TObject);
begin                                                           //状态栏显示
  statuslogin.Panels[0].Text := '时间:';
  statuslogin.Panels[1].Text := formatdatetime('YYYY-MM-DD hh:mm:ss',now);
end;

procedure TfrmLogin.btnExitClick(Sender: TObject);
begin
  close;
end;


{
*************************************************************************************
函数名称: 用户名文本框change事件
功能描述: 只有输入六位用户名,登录按钮才能生效,不然,灰白显示
输入参数: 无
输出参数: 无
返回 值:  无
说   明:
*************************************************************************************
}
procedure TfrmLogin.edtuserChange(Sender: TObject);
begin
  if length(edtuser.Text)=6 then
    bbtnLogin.Enabled := true
  else
    bbtnLogin.Enabled := false;
end;

procedure TfrmLogin.edtuserKeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then
    edtpsw.SetFocus;
end;

procedure TfrmLogin.edtpswKeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    bbtnLogin.Click;
end;


{
*************************************************************************************
函数名称: 登录按钮单击事件
功能描述: 只有输入正确的用户名、密码,系统才允许进入
输入参数: 无
输出参数: 无
返回 值:  无
说   明:
*************************************************************************************
}
procedure TfrmLogin.bbtnLoginClick(Sender: TObject);
begin
  if edtPsw.Text='' then
  begin
    showmessage('密码不能为空');
    //bbtnLogin.Cancel := true;
    icount := icount+1;
    if icount=3 then                                            //三次登录失败,系统将自动关闭
    begin
      showmessage('对不起!您无权登录');
      close;
    end;
    exit;
  end
  else
  begin
    try
      iniado;
      adoqry := TADOQuery.Create(nil);
      adoqry.Connection := adoconn;
      adoqry.SQL.Text := 'select * from TUser where UName=''' + edtuser.Text + ''' and UPassWord=''' + edtpsw.Text + '''';
      adoqry.Open;
      if adoqry.RecordCount<>0 then
      begin
        bbtnLogin.ModalResult := mrOk;                         //登录成功后将登录按钮的modalResult值置为mrOK,将返回一个值给主窗体
      end
      else
      begin
        showmessage('用户名或密码错误');
        edtpsw.Text := '';
        icount := icount+1;
        if icount=3 then
        begin
          showmessage('对不起!您无权登录');
          close; 
        end;

      end;
      adoqry.Close;         
    except
        on e:exception do
          showmessage('登录失败');
    end;
  end;
end;

procedure TfrmLogin.bbtnExitClick(Sender: TObject);
begin
  if MessageDlg('您是否要退出登陆?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
  self.Close;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -