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

📄 login_unit.~pas

📁 用DELPHI实现的销售管理系统
💻 ~PAS
字号:
unit Login_Unit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons,Registry;
type
  TInfor=class(Tobject)
  UserName:String;
  Password:String;
end;   
type
  TLogin_Form = class(TForm)
    Label1: TLabel;
    UserName_Combox: TComboBox;
    Label2: TLabel;
    Password_Edit: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    Label3: TLabel;
    procedure FormDestroy(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Password_EditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure UserName_ComboxKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormActivate(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    LogCount:Integer;
    procedure GetUsers;

  public
   class function ShowMe:boolean;
   procedure SetText(Str:string);
  end;

var
  Login_Form: TLogin_Form;

implementation

{$R *.dfm}

{ TLogin_Form }

procedure TLogin_Form.GetUsers;
var reg:TRegistry;
    VNames:TStrings;
    Infor:TInfor;
    i:integer;
begin
 reg:=TRegistry.Create;
 VNames:=TStringList.Create;
 Reg.RootKey:=HKEY_LOCAL_MACHINE;
 Reg.OpenKey('Software\FLy\Login',True);
 Reg.GetValueNames(VNames);
 if VNames.Count<=0 then
 begin
    Infor:=TInfor.Create;
    Reg.WriteString('管理员','www');
    Infor.UserName:='管理员';
    Infor.Password:='www';
    UserName_Combox.Items.AddObject(infor.username,infor);
 end
 else
 begin
   for i:=0 to VNames.Count -1 do
   begin
     Infor:=TInfor.Create;
     infor.UserName:=Vnames.Strings[i];
     infor.password:=Reg.ReadString(VNames.Strings[i]);
     UserName_Combox.Items.AddObject(Vnames.Strings[i],infor);
   end;
 end;
 reg.CloseKey;
 reg.Free;
end;

procedure TLogin_Form.FormDestroy(Sender: TObject);
var i:integer;
begin
for i:=0 to UserName_Combox.Items.Count-1 do
   TInfor(UserName_Combox.Items.Objects[i]).Free;
end;

class function TLogin_Form.ShowMe: boolean;
begin
 try
    Login_Form:=TLogin_Form.Create(Application);
    Login_Form.ShowModal;
    if Login_FOrm.ModalResult=mrOk then
      Result:=True
    else
      Result:=false;
 finally
    Login_Form.Free;
    login_form:=nil;
 end;               
end;

procedure TLogin_Form.BitBtn1Click(Sender: TObject);
begin
  if Password_Edit.Text=TInfor(UserName_Combox.Items.Objects[UserName_Combox.ItemIndex]).Password then
     self.ModalResult:=mrok
  else
     begin
       messagebox(self.handle,'密码错误','',MB_ICONSTOP+MB_OK);
       inc(LogCount);
       if LogCount>=3 then self.ModalResult:=mrCancel;
     end;
end;

procedure TLogin_Form.FormCreate(Sender: TObject);
begin
GetUsers;
UserName_Combox.ItemIndex:=0; 
end;

procedure TLogin_Form.Password_EditKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=vk_return then
  BitBtn1Click(nil); 
end;

procedure TLogin_Form.UserName_ComboxKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
if key=vk_return then
    Password_edit.SetFocus ;
    end;


procedure TLogin_Form.FormActivate(Sender: TObject);
begin
password_edit.SetFocus ;
end;

procedure TLogin_Form.SpeedButton1Click(Sender: TObject);
begin
  if Password_Edit.Text=TInfor(UserName_Combox.Items.Objects[UserName_Combox.ItemIndex]).Password then
     self.ModalResult:=mrok
  else
     begin
       messagebox(self.handle,'密码错误','',MB_ICONSTOP+MB_OK);
       inc(LogCount);
       if LogCount>=3 then self.ModalResult:=mrCancel;
     end;
end;

procedure TLogin_Form.SpeedButton2Click(Sender: TObject);
begin
if application.MessageBox('确实要退出吗?','退出',4)=6 then
application.Terminate;
end;

procedure TLogin_Form.BitBtn2Click(Sender: TObject);
begin
if application.MessageBox('确实要退出吗?','退出',4)=6 then
application.Terminate;
end;

procedure TLogin_Form.SetText(Str:string);
begin
  Label3.Caption := Str;
end;

end.

⌨️ 快捷键说明

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