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

📄 login.~pas

📁 this is sample for traders
💻 ~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 + -