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

📄 login.pas

📁 本图书管理系统一sql server为数据库开发平台
💻 PAS
字号:
unit Login;
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ToolWin,ExtCtrls,buttons, ADODB, ImgList,Worker;

type
  TLoginForm = class(TForm)
    ComboBox1: TComboBox;
    Edit1: TEdit;
    Label1: TLabel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
   procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Label1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
 private
    procedure WM_NCHITTEST(var msg:TWMNCHITTEST);message WM_NCHITTEST;
       { Private declarations }
  public
    bitmapb2:Tbitmap;
    { Public declarations }
  end;

implementation

uses MainForm,DataModule;
{$R *.dfm}
function MyShowmessage(text:Pchar):boolean; external 'resource.dll';

procedure Tloginform.WM_NCHITTEST(var msg:TWMNCHITTEST);
var
  mousep:tPoint;
begin
  defaultHandler(msg);
  mousep.X:=msg.XPos;
  mousep.Y:=msg.YPos;
  mousep:=screentoclient(mousep);
  if msg.Result= HTClient  then
    if not ptinrect(speedbutton2.BoundsRect,mousep) then
      if not ptinrect(speedbutton1.BoundsRect,mousep) then
        msg.Result:=HTCAPTION;

end;
procedure TLoginForm.FormCreate(Sender: TObject);
var
  threadrgn,tmprgn:HRGN;
  x,y:integer;
begin
  bitmapb2:=Tbitmap.Create;
  bitmapb2.LoadFromResourceName(main.resource,'login');
end;

procedure TLoginForm.FormPaint(Sender: TObject);
begin
  canvas.StretchDraw(self.ClientRect,bitmapb2);
end;

procedure TLoginForm.FormDestroy(Sender: TObject);
begin
  bitmapb2.Free;
  data.PublicQuery.Close;
end;


procedure TLoginForm.Label1Click(Sender: TObject);
var
  num:integer;
begin
  if (trim(combobox1.Text) = '') then
  begin
    showmessage('请输入用户名!!');
    exit;
  end;
  with data.PublicQuery do
  begin
    close;
    sql.Clear;
    sql.Add('select * from Worker where username=:username');
    parameters.ParamByName('username').Value:=combobox1.Text;
    open;
    if recordcount < 1 then
    begin
      myshowmessage('对不起!该用户不存在!');
      exit;
    end;
     num:=recordcount;
     main.userPurview.username:=combobox1.Text;
     if strcomp(Pchar(Edit1.text),pchar(fieldbyname('password').AsString))=0 then
     begin
       close;
       sql.Clear;
       sql.Add('select * from UserPower where username=:username');
       parameters.ParamByName('username').Value:=main.userPurview.username;
       open;
       if recordcount > 0 then
       begin
         main.userPurview.BaseManage:=fieldbyname('Base').AsInteger;
         main.userPurview.InManage:=fieldbyname('InManage').AsInteger;
         main.userPurview.Lendandsell:=fieldbyname('Lendandsell').AsInteger;
         main.userPurview.analyze:=fieldbyname('analyze').AsInteger;
         main.userPurview.system:=fieldbyname('system').AsInteger;
         main.userPurview.supervisor:=fieldbyname('supervisor').AsInteger;
         main.StatusBar1.Panels[3].Text:='登录时间:'+datetimetostr(now)+'  ';
         self.Close;
       if (num = 1) and (main.userPurview.BaseManage=0)and(main.userPurview.InManage=0)
       and(main.userPurview.analyze=0) and(main.userPurview.system=0) and(main.userPurview.supervisor=0) then
         if  myshowmessage('没有为该用户设置权限,是否启动用户管理器,设置该用户?') then
         begin
           UserManagershow;
         end;
       end;
     end
     else
       showmessage('密码不正确,请重新输入!');
  end;
end;

procedure TLoginForm.SpeedButton2Click(Sender: TObject);
begin
  self.close;
end;

procedure TLoginForm.FormShow(Sender: TObject);
begin
  combobox1.Clear;
  with data.PublicQuery do
  begin
    close;
    sql.Clear;
    sql.Add('select * from Worker');
    open;
    if recordcount<1 then
    begin
      showmessage('目前没有任何用户!请建立一个管理员用户。' );
      UserManagershow;
      close;
      sql.Clear;
      sql.Add('select * from Worker');
      open;
      while not Eof do
      begin
        combobox1.Items.Add(fieldbyname('Username').AsString);
        next;
      end;
    end
    else begin
      while not Eof do
      begin
        combobox1.Items.Add(fieldbyname('Username').AsString);
        next;
      end;
    end;
  end;
end;

procedure TLoginForm.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  if main.userPurview.username<>'' then
  begin
    with data.PublicQuery do
    begin
      close;
      sql.Clear;
      sql.Add('select * from Worker where username=:username');
      parameters.ParamByName('username').Value:=main.userPurview.username;
      open;
      if recordcount < 1 then
      begin
        myshowmessage(#13+'对不起!请重新登录!');
        canclose:=false;;
      end;
    end;
  end;
end;

procedure TLoginForm.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
  edit1.SetFocus;
end;

procedure TLoginForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
  Label1Click(speedbutton1);
end;

end.

⌨️ 快捷键说明

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