📄 login.~pas
字号:
unit Login;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, JvExControls, JvComponent, JvStaticText, DBCtrls, StdCtrls,
Buttons, ExtCtrls, JvGradientCaption, DB, ZAbstractRODataset,
ZAbstractDataset, ZDataset, JvExStdCtrls, JvEdit, ZConnection, jpeg;
type
TLoginForm = class(TForm)
GroupBox1: TGroupBox;
edName: TEdit;
edPassword: TEdit;
OkBtn: TBitBtn;
CancelBtn: TBitBtn;
JvStaticText3: TJvStaticText;
JvStaticText1: TJvStaticText;
Image1: TImage;
StaticText3: TStaticText;
JvStaticText2: TJvStaticText;
JvStaticText4: TJvStaticText;
edComp: TJvEdit;
edNode: TJvEdit;
Image2: TImage;
JvGradientCaption1: TJvGradientCaption;
procedure CancelBtnClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure OkBtnClick(Sender: TObject);
procedure edNameChange(Sender: TObject);
procedure edPasswordChange(Sender: TObject);
private
procedure SetControls;
public
class function Execute : boolean;
end;
var
LoginForm: TLoginForm;
implementation
{$R *.dfm}
uses DataMod1, FuncLib;
class function TLoginForm.Execute: boolean;
begin
DM1:=TDM1.Create(nil);
ShareDM;
if not DM1.dbconnect then Application.Terminate;
with TLoginForm.Create(nil) do
try
Result := ShowModal = mrOk;
finally
Free;
end;
end;
procedure TLoginForm.SetControls;
begin
if (Trim(EdName.Text) <> '') and (Trim(EdPassword.Text) <> '') then
OkBtn.Enabled := True else OkBtn.Enabled := False;
end;
procedure TLoginForm.CancelBtnClick(Sender: TObject);
begin
Close;
ModalResult := mrAbort;
end;
procedure TLoginForm.FormActivate(Sender: TObject);
begin
edComp.Text := mpcname; edNode.Text := mnode;
Edname.Clear; Edpassword.Clear; Edname.SetFocus;
end;
procedure TLoginForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
key := #0;
Perform(WM_NEXTDLGCTL, 0, 0);
end;
end;
procedure TLoginForm.OkBtnClick(Sender: TObject);
var
Err1: String;
Sqltxt1: String;
Sqltxt2: String;
qLogin: TZQuery;
begin
qLogin:=TZQuery.Create(nil);
qLogin.Connection:=DM1.dtaCon1;
Sqltxt1:='SELECT * FROM USER_TBL WHERE USERNAME=:UserN AND USERPASS=PASSWORD(:UserP) '+
'AND HOSTCON="%" ';
Sqltxt2:='SELECT * FROM USER_TBL WHERE USERNAME=:UserN AND USERPASS=PASSWORD(:UserP) '+
'AND USERNODE=:Usernode AND USERPCNAME=:Userpc';
with qLogin do
begin
Close;
SQL.Clear;
SQL.Add(Sqltxt1);
ParamByName('UserN').AsString:=EdName.Text;
ParamByName('UserP').AsString:=EdPassword.Text;
Open;
if RecordCount=0 then
begin
Close;
SQL.Clear;
SQL.Add(Sqltxt2);
ParamByName('UserN').AsString:=EdName.Text;
ParamByName('UserP').AsString:=EdPassword.Text;
ParamByName('Usernode').Value:=mnode;
ParamByName('Userpc').Value:=mpcname;
Open;
if RecordCount=0 then
begin
Err1:='Akses Login Error...'+#13#10+'User : '+EdName.Text+' ==> WorkStation : '+mnode+' / '+mpcname+#13#10+
'Silakan Login Ulang ...';
MessageDlg(Err1,mtwarning,[mbOK],0);
OkBtn.Enabled := False;
Edname.Clear;
EdPassword.Clear;
Edname.SetFocus;
end else
begin
AppUserName:=Edname.Text;
Close;
ModalResult := mrOK;
end;
end else
begin
AppUserName:=Edname.Text;
Close;
ModalResult := mrOK;
end;
end;
end;
procedure TLoginForm.edNameChange(Sender: TObject);
begin
SetControls;
end;
procedure TLoginForm.edPasswordChange(Sender: TObject);
begin
SetControls;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -