📄 login.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 + -