www.pudn.com > jiaocaiguanlixitongdaima.rar > LoginUnit.pas


unit LoginUnit; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, ExtCtrls, DB, ADODB, StdCtrls, Buttons,iniFiles; 
 
type 
  TfrmLogin = class(TForm) 
    Panel1: TPanel; 
    Image1: TImage; 
    Panel2: TPanel; 
    Label1: TLabel; 
    Label2: TLabel; 
    OperatorIDEdit: TEdit; 
    PwdEdit: TEdit; 
    BitBtn1: TBitBtn; 
    BitBtn2: TBitBtn; 
    LoginQuery: TADOQuery; 
    Panel3: TPanel; 
    Label3: TLabel; 
    HostEdit: TEdit; 
    DBEdit: TEdit; 
    Label4: TLabel; 
    SpeedButton1: TSpeedButton; 
    AdvanceBtn: TSpeedButton; 
    SpeedButton3: TSpeedButton; 
    procedure BitBtn1Click(Sender: TObject); 
    procedure FormActivate(Sender: TObject); 
    procedure BitBtn2Click(Sender: TObject); 
    procedure AdvanceBtnClick(Sender: TObject); 
    procedure SpeedButton3Click(Sender: TObject); 
    procedure FormCreate(Sender: TObject); 
    procedure SpeedButton1Click(Sender: TObject); 
  private 
    procedure CheckValue();{ Private declarations } 
    procedure SaveIni(); 
  public 
   // Settings:TSetupConfig;{ Public declarations } 
  end; 
 
var 
  frmLogin: TfrmLogin; 
 
implementation 
 
uses DataModuleUnit, MainUnit, CommonUnit; 
 
{$R *.dfm} 
//保存配置信息 
procedure TfrmLogin.SaveIni(); 
begin 
  with frmMain.Settings do 
  begin 
    SetHost:=HostEdit.Text; 
    SetDataBaseName:=DBEdit.Text; 
    SaveConfig; 
  end; 
end; 
//检查Edit是否为空 
procedure TfrmLogin.CheckValue(); 
begin; 
    if Trim(OperatorIDEdit.Text)='' then 
    begin 
      ShowMessage('用户名不能为空!'); 
      abort; 
    end; 
    if Trim(PwdEdit.Text)='' then 
    begin 
      ShowMessage('密码不能为空!'); 
      abort; 
    end; 
end; 
//用户登录 
procedure TfrmLogin.BitBtn1Click(Sender: TObject); 
begin 
  self.CheckValue; 
  with LoginQuery do 
  begin 
    Parameters.Clear;//添加参数     
    Parameters.CreateParameter('@OperatorID',ftstring,pdinput,8,self.OperatorIDEdit.Text); 
    Parameters.CreateParameter('@OperatorID',ftstring,pdinput,8,self.PwdEdit.Text); 
    Open; 
  end; 
  if loginQuery.RecordCount>0 then 
  begin   //记录登录信息 
    with frmMain.OperatorInfo do 
    begin 
      OperatorID:=LoginQuery.Fields[0].AsString; 
      OperatorPWD:=loginQuery.Fields[1].AsString; 
      OperatorPower[1]:=strtobool(LoginQuery.Fields[2].AsString); 
      OperatorPower[2]:=strtobool(LoginQuery.Fields[3].AsString); 
      OperatorPower[3]:=strtobool(LoginQuery.Fields[4].AsString); 
      OperatorPower[4]:=strtobool(LoginQuery.Fields[5].AsString); 
      OperatorName:=LoginQuery.Fields[6].AsString; 
      frmMain.StatusBar1.Panels[1].Text:=OperatorID; 
      frmMain.StatusBar1.Panels[3].Text:=OperatorName; 
    end; 
 
    LoginQuery.Close; 
    frmMain.Settings.LastOperatorID:=OperatorIDEdit.Text; //保存用户名 
    frmMain.Settings.SaveConfig; 
    close; 
  end 
  else 
  begin 
      ShowMessage('你输入的用户名或密码错误!'); 
      LoginQuery.Close; 
  end; 
end; 
 
procedure TfrmLogin.FormActivate(Sender: TObject); 
begin 
  LoginQuery.Connection:=frmDataModule.Connection; 
  OperatorIDEdit.Text:=frmMain.Settings.LastOperatorID; 
end; 
 
procedure TfrmLogin.BitBtn2Click(Sender: TObject); 
begin 
  Application.Terminate; 
end; 
 
procedure TfrmLogin.AdvanceBtnClick(Sender: TObject); 
begin 
  AdvanceBtn.Enabled:=false; 
  self.Height:=340; 
  panel3.Visible:=true; 
end; 
 
procedure TfrmLogin.SpeedButton3Click(Sender: TObject); 
begin 
  self.Height:=270; 
  panel3.Visible:=false; 
  AdvanceBtn.Enabled:=true; 
end; 
 
procedure TfrmLogin.FormCreate(Sender: TObject); 
begin 
   self.Height:=270; 
   HostEdit.Text:=frmMain.Settings.SetHost; 
   DBEdit.Text:=frmMain.Settings.SetDataBaseName; 
end; 
 
procedure TfrmLogin.SpeedButton1Click(Sender: TObject); 
begin 
    if Trim(HostEdit.Text)='' then 
    begin 
      ShowMessage('IP/主机名不能为空!'); 
      HostEdit.SetFocus; 
      abort; 
    end; 
    if Trim(DBEdit.Text)='' then 
    begin 
      ShowMessage('数据库名不能为空!'); 
      DBEdit.SetFocus; 
      abort; 
    end; 
  self.SaveIni(); 
  Application.MessageBox('保存成功,请重新启动本系统!','提示',mb_ok); 
  WinExec(pchar(paramstr(0)),0); 
  Application.Terminate; 
end; 
 
end.