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

📄 load.pas

📁 健身会馆会员管理,实现了部分财务管理和,报表统计功能
💻 PAS
字号:
unit load;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, jpeg, ExtCtrls, ADODB,AES, Menus;

type
  Tloadfrm = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    ComboBox1: TComboBox;
    Edit1: TEdit;
    btok: TButton;
    btcancel: TButton;
    Label4: TLabel;
    Button1: TButton;
    Label5: TLabel;
    ADOQuery1: TADOQuery;
    ADOTable1: TADOTable;
    Label6: TLabel;
    Label7: TLabel;
    procedure btcancelClick(Sender: TObject);
    procedure btokClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);

  private
  procedure denglu();
  procedure zhuce();
    { Private declarations }
  public
    { Public declarations }
  end;

var
  loadfrm: Tloadfrm;
  quanxian,done:integer;
  leader,usern:string;

implementation
uses unit1,HardInfo,zhuce;
{$R *.dfm}
//var
//ap:TStringList;{字符串列表变量}
//AppPath:string;

procedure Tloadfrm.btcancelClick(Sender: TObject);
var
k:integer;
begin
 k:=messagebox(0,Pchar('确实要退出吗?'),PchaR('确认信息'),Mb_YesNo);
 if k=6 then
   begin
      done:=1;
      close;
   end;
end;

//单击登陆按钮事件
procedure Tloadfrm.btokClick(Sender: TObject);
var
list:Tstringlist;

begin
try
if fileExists('denglu.ini') then
   begin
   list:=Tstringlist.Create ;
   list.LoadFromFile('denglu.ini');
   if list[0]<>'0' then list[0]:=inttostr(strtoint(list[0])+1);
   list.SaveToFile('denglu.ini');
   list.free;
   end
else
   begin
   showmessage('系统配置文件数据库文件丢失,请处理!!');
   done:=1;
   END;
denglu();
EDIT1.Text:='';
except
 showmessage('启动程序意外出错');
 done:=1;
end;
end;


//注册新用户子程序
procedure Tloadfrm.zhuce();
var
strsql,zhuceuser,zhucename:string;
list:Tstringlist;
begin
list:=Tstringlist.Create ;
if  fileExists('denglu.INI') then
   begin
   list.LoadFromFile('denglu.INI');
   //if list[0]='0' then
   //  begin
       zhuceuser:= InputBox('注册用户','请输入用户名:','');
       if zhuceuser='' then
         begin
           showmessage('用户名不能为空');
           done:=1;
         end
      else
       begin
         zhucename:= InputBox('输入用户姓名','请输入用户真实姓名:   ','');
         if zhucename='' then
            begin
              showmessage('姓名不能为空');
              done:=1;
            end
         else
            begin
               try
               strsql:='select * from 用户表';
               ADOquery1.Close ;
               ADOquery1.SQL.Text :=strsql;
               ADOquery1.Open ;
               ADOquery1.Append ;
               ADOquery1.FieldByName('用户名').AsString :=zhuceuser ;
               ADOquery1.FieldByName('姓名').AsString :=zhucename ;
               ADOquery1.FieldByName('密码').AsString :=zhuceuser ;
               ADOquery1.FieldByName('权力').AsInteger :=5;
               ADOquery1.Post ;
               list[0]:=inttostr(strtoint(list[0])+1);
               list.SaveToFile('denglu.ini');
               except
                  showmessage('建立用户失败,可能的原因是该用户名已经存在,请换个用户名');
               end;
            end;
         end;
    //end else showmessage('不能注册新用户');
end else showmessage('系统配置文件数据库文件丢失,请处理!!');
end;

//登陆子程序
procedure Tloadfrm.denglu();
var
strsql,password,temp:string;
list:Tstringlist;
i:integer;
newuser:boolean;
begin
 newuser:=true;
      usern:=combobox1.Text ;
      password:=edit1.Text ;
      if usern='' then
      begin
        showmessage('用户名无效,请重新输入');
        loadfrm.Tag :=0;
        combobox1.SetFocus ;
        exit;
      end
    else begin
        strsql:='select * from 用户表 where 用户名 = "'+ usern+'"';
        ADOquery1.Close ;
        //ADOquery1.RequestLive :=true;
        ADOquery1.SQL.Text :=strsql;
        ADOquery1.Open ;
        if ADOquery1.RecordCount >0 then   begin
           if password=ADOquery1.FieldValues ['密码'] then
              begin
                quanxian:=ADOquery1.FieldValues ['权力'];
                leader:=ADOquery1.FieldValues ['姓名'];
                ADOquery1.Close;
                MainForm.qianxiang.Open ;
                MainForm.qianxiang.Edit ;
                MainForm.qianxiang.FieldByName('本班收支').AsFloat :=0;
                MainForm.qianxiang.Post ;
                MainForm.qianxiang.Close ;
                list:=Tstringlist.Create ;
                if fileExists('denglu.ini') then
                  begin
                    list.LoadFromFile('denglu.ini');
                    for i:=2 to list.Count-1 do
                      if usern =list[i] then newuser:=false;
                    if newuser then
                       begin
                          if list.Count >9 then list[9]:=usern else list.Add(usern);
                          temp:=list[list.count-1];
                          for i:=list.Count-1 downto 2 do
                             list[i]:=list[i-1];
                          list[2]:=temp;
                          list.SaveToFile('denglu.ini');
                          list.Free;
                       end;
                       ADOTable1.Open;
                       ADOTable1.Edit;
                       if loadfrm.Tag =1 then
                          begin
                             ADOTable1.Last ;
                             ADOTable1.FieldByName('退出时间').AsDateTime :=now;
                             MainForm.qianxiang.Open ;
                             ADOTable1.FieldByName('本班收支').AsFloat := MainForm.qianxiang.FieldValues['本班收支'];
                             ADOTable1.Post;
                             MainForm.qianxiang.Close ;
                          end;

                       ADOTable1.Append ;
                       ADOTable1.FieldByName('用户名').AsString :=usern;
                       ADOTable1.FieldByName('权力').AsInteger :=quanxian;
                       ADOTable1.FieldByName('登陆时间').AsDateTime :=now;
                       ADOTable1.Post ;
                       done:=1;
                end
                else
                   begin
                   showmessage('系统配置文件数据库文件丢失,请处理!!');
                   done:=1;
                   end;
           end
           else begin
               showmessage('密码错误,请重新输入');
               loadfrm.Tag :=-1;
               edit1.SetFocus ;
               exit;
                end;
     end
  else  begin
    showmessage('用户名无效,请重新输入');
    loadfrm.Tag :=-1;
    combobox1.SetFocus ;
    edit1.Text :='';
    exit;
  end;
end;
loadfrm.Tag :=loadfrm.Tag +1;
if loadfrm.Tag >1 then
loadfrm.Tag :=1;
close;
end;

procedure Tloadfrm.FormCreate(Sender: TObject);
var
i:integer;
list:Tstringlist;
ff: THandle;
begin


list:=Tstringlist.Create ;
if fileExists('denglu.ini') then
  begin
  list.LoadFromFile('denglu.ini');
  if list[0]='0' then button1.visible:=true else button1.visible:=false;
  for i:=2 to list.Count-1 do
  combobox1.Items.Add(list[i]);
  end
else begin
  ff:=FileCreate('denglu.ini');
  fileclose(ff);
  list.LoadFromFile('denglu.ini');
  list.Add('0');
  list.Add('0');
  list.SaveToFile('denglu.ini');
  end;
list.Free;
end;

procedure Tloadfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
{try
//if loadfrm.Tag =1 then
{if quanxian >2 then mainfrm.n40.Visible :=true else mainfrm.n40.Visible :=false;
if quanxian =5 then mainfrm.n36.Visible :=true else mainfrm.n36.Visible :=false;
if quanxian =5 then mainfrm.n37.Visible :=true else mainfrm.n37.Visible :=false;
if quanxian >3 then mainfrm.n7.Visible :=true else mainfrm.n7.Visible :=false;
if quanxian >2 then mainfrm.ToolButton2.Visible :=true else mainfrm.ToolButton2.Visible :=false;   }
{MainForm.StatusBar1.Panels[2].Text :='   当前登陆用户: '+usern+'           姓名:'+leader;
mainform.user :=usern;
mainform.user_name :=leader;
if quanxian >2 then
mainform.bitbtn5.Enabled :=true
else mainform.bitbtn5.Enabled :=false;
//mainfrm.Repaint;
//end;
//main.shua :=true;
except
  ADOquery1.Close;
  showmessage('程序发生意外,请重新启动程序');
end;    }
end;

procedure Tloadfrm.Button1Click(Sender: TObject);
begin
try
zhuce();
except
 showmessage('注册新用户出错');
end;
end;

//系统初始化部分
//initialization   //自动添加数据库别名
procedure Tloadfrm.FormShow(Sender: TObject);
var
diskstr,key,datestr,mm:string;
begin
ADOquery1.Close ;
ADOquery1.SQL.Text :='select * from jls';
ADOquery1.Open ;
diskstr:=trim(HardInfo.GetCPUInfo);   //获得CPU序列号
//diskstr:=trim(StrPas(HardInfo.GetIdeSerialNumber));   //获得硬盘序列号
if (not ADOquery1.Eof) and (ADOquery1.FieldValues ['户名']<>'') then
  begin
    try
    case ADOquery1.FieldValues ['c2'] of
      0: key:=DecryptString(ADOquery1.FieldValues ['户名'], ADOquery1.FieldValues ['c1']);
      1: key:=DecryptString(ADOquery1.FieldValues ['户名'], ADOquery1.FieldValues ['c1'], kb192);
      2: key:=DecryptString(ADOquery1.FieldValues ['户名'], ADOquery1.FieldValues ['c1'], kb256);
    end;
    except
     //showmessage('注册码错误!!!');
     ADOquery1.Edit ;
     case ADOquery1.FieldValues ['c2'] of
      0: ADOquery1.FieldByName('力').AsString :=EncryptString(inttostr(strtoint(trim(DecryptString(ADOquery1.FieldValues ['力'], ADOquery1.FieldValues ['c1']))) + 3),ADOquery1.FieldValues ['c1']);
      1: ADOquery1.FieldByName('力').AsString :=EncryptString(inttostr(strtoint(trim(DecryptString(ADOquery1.FieldValues ['力'], ADOquery1.FieldValues ['c1'],kb192))) + 3),ADOquery1.FieldValues ['c1'], kb192);
      2: ADOquery1.FieldByName('力').AsString :=EncryptString(inttostr(strtoint(trim(DecryptString(ADOquery1.FieldValues ['力'], ADOquery1.FieldValues ['c1'],kb256))) +3),ADOquery1.FieldValues ['c1'], kb256);
     end;
     //ADOquery1.FieldByName('力').AsInteger :=ADOquery1.FieldValues ['力'] + 3;
     ADOquery1.Post ;
     zhucefrm.Memo1.Text :=diskstr;
     zhucefrm.Show ;
     exit;
    end;
  end;
KEY:=trim(key);
if key<>'' then
   datestr:=copy(KEY,0,10)
else  datestr:=datetostr(date);
mm:=copy(KEY,11,255);
if (mm<>diskstr) or (date > strtodate(datestr)) then
   begin
     ADOquery1.Edit ;
     //ADOquery1.FieldByName('力').AsInteger :=ADOquery1.FieldValues ['力'] + 3;
     try
     case ADOquery1.FieldValues ['c2'] of
      0: ADOquery1.FieldByName('力').AsString :=EncryptString(inttostr(strtoint(trim(DecryptString(ADOquery1.FieldValues ['力'], ADOquery1.FieldValues ['c1']))) + 3),ADOquery1.FieldValues ['c1']);
      1: ADOquery1.FieldByName('力').AsString :=EncryptString(inttostr(strtoint(trim(DecryptString(ADOquery1.FieldValues ['力'], ADOquery1.FieldValues ['c1'],kb192))) + 3),ADOquery1.FieldValues ['c1'], kb192);
      2: ADOquery1.FieldByName('力').AsString :=EncryptString(inttostr(strtoint(trim(DecryptString(ADOquery1.FieldValues ['力'], ADOquery1.FieldValues ['c1'],kb256))) +3),ADOquery1.FieldValues ['c1'], kb256);
     end;
     except
          done:=1;
          close;
     end;
     ADOquery1.Post ;
     zhucefrm.Memo1.Text :=diskstr;
     if date > strtodate(datestr) then  showmessage('激活码过期,请重新激活,否则数据随时可能丢失');
     zhucefrm.Show ;

     //showmessage('请及时注册,否则数据随时可能丢失');
   end;


end;

end.

⌨️ 快捷键说明

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