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

📄 ulogin.pas

📁 小型企业物品管理系统,DELPHI源码+ACCESS数据库
💻 PAS
字号:
unit Ulogin;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, StdCtrls, Menus,
   RzButton, ImgList,Registry,
  ActnList,adodb, BusinessSkinForm, bsSkinData, RzRadChk, bsSkinCtrls,
  bsSkinBoxCtrls, bsdbctrls, Mask, DBGridEh, DBCtrlsEh, DBLookupEh, RzEdit;

type
  TFlogin = class(TForm)
    RzBitBtn1: TRzBitBtn;
    RzBitBtn2: TRzBitBtn;
    img1: TImage;
    il1: TImageList;
    RzBitBtn3: TRzBitBtn;
    RzBitBtn4: TRzBitBtn;
    actlst1: TActionList;
    ashow: TAction;
    pass: TbsSkinDBPasswordEdit;
    lbl1: TLabel;
    lbl2: TLabel;
    rcb1: TbsSkinCheckRadioBox;
    rcb2: TbsSkinCheckRadioBox;
    urname: TRzEdit;
    procedure RzBitBtn1Click(Sender: TObject);
    procedure RzBitBtn2Click(Sender: TObject);
    procedure ashowExecute(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure RzBitBtn3Click(Sender: TObject);
    procedure RzBitBtn4Click(Sender: TObject);
  private
    { Private declarations }
  public
   ww:TRegistry;
    { Public declarations}
  end;

var
  Flogin: TFlogin;

implementation

uses Udate, Umain, Uljdate, Uwell, AES, ElAES;

{$R *.dfm}
procedure TFlogin.RzBitBtn2Click(Sender: TObject);
begin
  if MessageDlg('真的要退出该系统吗?',mtInformation,[mbYes,mbno],0)=idyes then
    fmain.close
  else
    Exit;
end;

procedure TFlogin.ashowExecute(Sender: TObject);
begin
  urname.SetFocus;
  ww:=TRegistry.Create;//创建ww对象
 ww.RootKey :=HKEY_CURRENT_USER;//注意:通过修改RootKey可以把信息写到注册表的每一个角落
 ww.OpenKey('software',FALSE);
  ww.CreateKey( '进销存管理系统');
  ww.OpenKey( '进销存管理系统',FALSE);
  ww.CreateKey('进销存管理系统');//创建应用程序的名称
  ww.OpenKey('进销存管理系统',TRUE);
  ww.CreateKey('信息');
  ww.OpenKey('信息',TRUE);
if (ww.ReadString('first')<>'1') or (ww.ReadString('system')='')then//通过“first“来判断程序是否
  begin//是第一次写注册表,如果是第一次写则用程序给的默认值来 (或者说SYSTEM的值是否为空)
    ww.WriteString('first','1');//是否第一次登录
    ww.WriteString('numer','1');//登录次数
    ww.WriteString('user','n');//是否保存用户名
    ww.WriteString('pass','n');//是否保存密码
    ww.WriteString('password','');//用户密码
    ww.WriteString('urname','');//用户名称
    ww.WriteString('sn','n');//是否注册 
    fadocd:=PromptDataSource(Handle,'Provider=SQLOLEDB.1;Persist Security Info=False;');
    ww.WriteString('system',''+fadocd+''); //把客户第一次连接数据库的状态字符写到注册表里
  end
  else begin
    ww.WriteString('numer',''+inttostr(strtoint(ww.ReadString('numer'))+1)+'');
    if ww.ReadString('user')='y' then begin
      rcb1.Checked:=True;
      urname.text:=ww.ReadString('urname');end
    else begin rcb1.Checked:=False;urname.text:='';urname.SetFocus; end;
    if ww.ReadString('pass')='y' then begin
      pass.text:=ww.ReadString('password');
      rcb2.Checked:=True;
    end
    else begin rcb2.Checked:=False; pass.Text:='';end;
  end;
  fdate.con1.connectionstring:=(ww.ReadString('system'));
  try
    fDate.con1.Open;
    fadocd:=fdate.con1.ConnectionString;
  except
    ShowMessage('数据库服务器连接不通请联系管理员!');
    Exit;
  end;
end;

procedure TFlogin.RzBitBtn1Click(Sender: TObject);
begin
  if not fDate.CON1.Connected then
    begin
      ShowMessage('请先连接数据库!');
      Exit;
  end;
  if (ww.readstring('sn')='n') and (StrToInt(ww.ReadString('numer'))>=20) then begin
      MessageBeep(0);
      MessageDlg('对不起该软件已到使用期!请先注册!',mtError,[mbyes],0);
      exit;
    end;
   with fdate.qryuser do begin
    Close;
    Parameters.ParamByName('urname').Value:=urname.Text;
    Parameters.ParamByName('urpass').Value:=pass.Text;
    Open;
  end;
  if fdate.qryuser.RecordCount=0 then begin
    MessageBeep(0);
     ShowMessage('登录失败! 请检查:'+ #13#10#13#10 + '1. 数据库服务器域名或IP是否存在;' +
      #13#10 + '2. 登录名与密码是否正确;' + #13#10 + '3. 注意是否错按下 Caps Lock 键.' +
      #13#10 + #13#10);
    urname.SetFocus;
    Exit;
  end;
  if (fdate.qryuser.RecordCount>0) and (fdate.qryuseremlogin.Value=true) then begin
    MessageBeep(0);
    ShowMessage('该用户已经登录,登录失败!');
    Exit;
  end;
  if(fdate.qryuser.RecordCount>0) and (fdate.qryuseremlogin.Value=false) then begin
    fdate.qryuser.Edit;
    fdate.qryuseremlogin.Value:=true;
    try fdate.qryuser.Post;
    except
      fdate.qryuser.Cancel;
    end;
    passwords:=trim(pass.text);
    yhname:=Trim(urname.Text);
    urid:=fdate.qryuseremid.Value;
    ww.OpenKey('位置',FALSE);//打开“位置”键
    ww.WriteString('system',''+fadocd+'');
    if rcb1.Checked=true then begin//如果当前程序的设置写进去,则把这一信息写入注册表,
      ww.WriteString('user','y');
      ww.WriteString('urname',''+trim(urname.text)+'');
    end
    else begin
      ww.WriteString('user','n');
      ww.writestring('urname','');
    end;
    if rcb2.Checked=True then begin
      ww.WriteString('pass','y');
      ww.WriteString('password',''+trim(pass.text)+''); end
    else begin
      ww.WriteString('pass','n');
      ww.WriteString('password',''); end;
    if (ww.ReadString('sn')='n') and (strtoint(ww.ReadString('numer'))<=20) then
      ShowMessage('您还可以使用['+''+inttostr(20-strtoint(ww.ReadString('numer')))+''+']次!');
    close;
    Fmain.Top:=150;
    fmain.RzGroup1.Open;
    Fmain.Timer1.Enabled:=True;;//调用判断看当前的库存数量是否小于用户的设置量
  end;
end;

procedure TFlogin.FormShow(Sender: TObject);
var
  fWELL: TfWELL;
begin
  fwell:=tfwell.Create(Self);
  fwell.Show;
  Application.ProcessMessages;
  Sleep(2000);
  fwell.Free;
  ashow.Execute;
end;

procedure TFlogin.RzBitBtn3Click(Sender: TObject);
begin
  try fdate.con1.Close;
  except
    ShowMessage('数据库关闭过程中出现错误!');
    Exit;
  end;
  fadocd:=PromptDataSource(Handle,ww.ReadString('system'));
  fdate.con1.connectionstring:=fadocd;
  try fdate.con1.Open;
  except
    ShowMessage('数据库连接失败!');
    fdate.con1.Close;
  end;
end;

procedure TFlogin.RzBitBtn4Click(Sender: TObject);
begin
  if not fDate.CON1.Connected then
    begin
      ShowMessage('请先连接数据库!');
      Exit;
  end;
  if not fmain.qryinfo.Active then
    fMain.qryInfo.Open;
  fMain.qryInfo.Edit;
  fMain.qryInfosiSN.Value := InputBox('软件注册','请在下面输入注册码',fMain.qryInfosiSN.Value);
  fMain.qryInfo.Post;
  //ShowMessage(''+EncryptString(fMain.qryInfosiSN.Value,fMain.qryInfosiSN.Value,kb256)+'');
  if EncryptString(fMain.qryInfosiSN.Value,fMain.qryInfosiSN.Value,kb256) = SN then
  begin
    ShowMessage('谢谢您的支持, 我们将努力做得更好');
    Fmain.qryinfo.Edit;
    Fmain.qryinfosiSN.Value:='';
    Fmain.qryinfo.Post;
    ww.WriteString('sn','y'); 
  end
  else
    ShowMessage('软件注册失败, 请联系开发商购买!');
end;

end.

⌨️ 快捷键说明

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