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

📄 loginut.pas

📁 仓库的进销存,及查询,供应商的管理.和库存的查询及管理.
💻 PAS
字号:
unit loginut;

interface

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

type
  Tloginfm = class(TForm)
    Panel1: TPanel;
    GroupBox1: TGroupBox;
    userpasedit: TLabeledEdit;
    Label1: TLabel;
    usernamebox: TComboBox;
    loginbt: TSpeedButton;
    closebt: TSpeedButton;
    ADOQuery: TADOQuery;
    procedure closebtClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure loginbtClick(Sender: TObject);
    procedure userpaseditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure usernameboxKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
     
    { Public declarations }
  end;

var
  loginfm: Tloginfm;
  j:integer;
implementation

uses mainut, dataut;

{$R *.dfm}

procedure Tloginfm.closebtClick(Sender: TObject);
begin
if messagedlg('确定退出吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
application.Terminate;
end;

procedure Tloginfm.FormCreate(Sender: TObject);
var
mypath:string;
begin
j:=0;
mypath:=extractfilepath(paramstr(0));
ADOquery.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+mypath+'data\kcgl.mdb;Persist Security Info=False';
ADOquery.active:=true;
with adoquery do
begin
close;
sql.Clear;
sql.Add('select * from czyb');
open;
if recordcount>0 then
begin
first;
while not eof do
begin
usernamebox.Items.Add(fieldbyname('姓名').AsString);
next;
end;
end
else
showmessage('当前没有用户');
end;
end;

procedure Tloginfm.FormActivate(Sender: TObject);
var
mypath:string;
begin
j:=0;
mypath:=extractfilepath(paramstr(0));
ADOquery.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+mypath+'data\kcgl.mdb;Persist Security Info=False';
ADOquery.active:=true;
end;

procedure Tloginfm.loginbtClick(Sender: TObject);
begin
if trim(usernamebox.text)='' then
begin
showmessage('请选择用户名!');
exit;
end;
with adoquery do
begin
close;
sql.Clear;
sql.Add('select * from czyb where 姓名=:username and 密码=:userpas');
Parameters.ParamByName('username').Value:=trim(usernamebox.text);
Parameters.ParamByName('userpas').Value:=userpasedit.text;
open;
if recordcount<1 then
begin
if j=3 then
application.Terminate;
messagedlg('密码错误!还有'+inttostr(3-j)+'次机会',mtconfirmation,[mbok],0);
j:=j+1;
exit;
end
else
begin
if fieldbyname('权限').AsString='计算机管理员' then
mainfm.id:='计算机管理员'
else
mainfm.id:='操作员';
mainfm.username:=fieldbyname('姓名').AsString;
mainfm.userpas:=fieldbyname('密码').AsString;
mainfm.statusbar.Panels.Items[0].Text:='当前用户:'+mainfm.username;
loginfm.close;
end;
end;
if mainfm.id='计算机管理员' then
begin
mainfm.N15.Enabled:=true;
mainfm.N17.Enabled:=true;
mainfm.N19.Enabled:=true;
mainfm.N23.Enabled:=true;
mainfm.N25.Enabled:=true;
mainfm.N27.Enabled:=true;
mainfm.N29.Enabled:=true;
mainfm.N31.Enabled:=true;
end;
if mainfm.id='操作员' then
begin
mainfm.N15.Enabled:=false;
mainfm.N17.Enabled:=false;
mainfm.N19.Enabled:=false;
mainfm.N23.Enabled:=false;
mainfm.N25.Enabled:=false;
mainfm.N27.Enabled:=false;
mainfm.N29.Enabled:=false;
mainfm.N31.Enabled:=false;
end;
end;

procedure Tloginfm.userpaseditKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=13 then
loginbt.Click;
if Shift>=[ssAlt] then
showmessage('操作非法!')
end;

procedure Tloginfm.usernameboxKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if Shift>=[ssAlt] then
showmessage('操作非法!')
end;

end.

⌨️ 快捷键说明

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