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

📄 register.pas

📁 电力行业前台收费程序,需要有后台SQL数据库,和电费管理系统配合应用.
💻 PAS
字号:
unit register;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, DBCtrls, ExtCtrls, Mask, Commfunc,inifiles, ComCtrls;

type
  TFormRegister = class(TForm)
    Label1: TLabel;
    Bevel1: TBevel;
    Bevel2: TBevel;
    Label2: TLabel;
    Label3: TLabel;
    EditPassWord: TEdit;
    BitBtnOK: TBitBtn;
    BitBtnCancel: TBitBtn;
    Bevel3: TBevel;
    Label4: TLabel;
    ComboBoxName: TComboBoxEx;
    procedure FormCreate(Sender: TObject);
    procedure BitBtnCancelClick(Sender: TObject);
    procedure BitBtnOKClick(Sender: TObject);
    procedure ComboBoxNameChange(Sender: TObject);
    procedure Label4Click(Sender: TObject);
  private
    TryCount:Integer;
    procedure ConnectDb;
  public
    { Public declarations }
  end;
implementation

uses DataMod, MainForm, InitDbSetUnit;

{$R *.DFM}


procedure TFormRegister.ConnectDb;
var{填充数据库连接菜单}
  IniF          : TIniFile;
  ActCntName    : String;
  NameList      : TStringList;
  FormInitDBSet : TFormInitDBSet;
  Connstring    : String;
  i             : Integer;
begin
  IniF:=TIniFile.Create(IniFileName);
  NameList:=TStringList.Create;
  IniF.ReadSection('数据连接',NameList);
  ActCntName:=IniF.ReadString('设置','活动连接','');
  for I:=0 to NameList.Count-1 do begin
    if(NameList.Strings[I]=ActCntName)then
      ConnString:=UncrypKeyPassword(IniF.ReadString('数据连接',NameList.Strings[I],''));
  end;
  if ConnString='' then begin
     Application.MessageBox('没有活动连接,请重新设置!','系统提示',MB_OK+MB_ICONWARNING);
     FormInitDBSet:=TFormInitDBSet.Create(nil);
     FormInitDBSet.ShowModal;
     FormInitDBSet.Free;
     IniF.ReadSection('数据连接',NameList);
     ActCntName:=IniF.ReadString('设置','活动连接','');
     for I:=0 to NameList.Count-1 do begin
       if(NameList.Strings[I]=ActCntName)then
         ConnString:=UncrypKeyPassword(IniF.ReadString('数据连接',NameList.Strings[I],''));
     end;
  end;
  IniF.Free;
  NameList.Free;
  with DataMD.ADOConnection do begin
       Connected:=False;
       ConnectionString:=ConnString;
       try
         Connected:=True;
         ComboBoxName.Items.Clear;
         EditPassWord.Text:='';
         with DataMD.OpenQuery('select 姓名,ID from xt_zhanghu order by ID') do begin
              First;
              while not Eof do begin
                 ComboBoxName.ItemsEx.AddItem(FieldByName('姓名').AsString,FieldByName('ID').AsInteger,-1,-1,-1,nil);
                 Next;
              end;
              Close;
         end;
       except
         on e:Exception do
            Application.MessageBox(PChar(e.message),'系统提示',MB_OK+MB_ICONWARNING);
       end;
  end;
end;

procedure TFormRegister.FormCreate(Sender: TObject);
begin
  ConnectDb;
  TryCount:=0;
end;

procedure TFormRegister.BitBtnCancelClick(Sender: TObject);
begin
  ModalResult:=mrCancel;
end;

procedure TFormRegister.BitBtnOKClick(Sender: TObject);
var
  XPasswd:string;
begin
  if(ComboBoxName.ItemIndex=-1)then begin
    ShowMessage('请选择用户名!');
    exit;
  end;
  XPasswd:=HashPasswordForStoringInConfigFile(EditPassword.Text,'SHA1');
  with DataMD do begin
    OpenPubQuery('select * from xt_zhanghu where ID='+InttoStr(ComboBoxName.ItemsEx[ComboBoxName.ItemIndex].ImageIndex)+' and 密码='''+XPasswd+'''',False);
    if not QueryPublic.Eof then begin
      OpName:=QueryPublic.FieldByName('姓名').AsString;
      OpID:=QueryPublic.FieldByName('ID').AsInteger;
      with OpenQuery('select 1 from sf_xt_zhanghu where ID ='+InttoStr(OpID)) do begin
          if RecordCount=0 then begin
            Close;
            ShowMessage('这个帐号没有进入收费程序的权利!');
            Exit;
          end
          else begin
            Close;
            ModalResult:=mrOK;
          end;
      end;
    end
    else begin
      inc(TryCount);
      if TryCount>3 then begin
          ShowMessage('如果您确实忘记了密码,请联系系统管理员');
          ModalResult:=mrCancel;
      end
      else begin
          ShowMessage('密码错误,请重新输入');
          EditPassword.SetFocus;
      end;
    end;
  end;
end;

procedure TFormRegister.ComboBoxNameChange(Sender: TObject);
begin
  EditPassWord.Text:='';
  EditPassWord.SetFocus;
end;

procedure TFormRegister.Label4Click(Sender: TObject);
var
  FormInitDBSet : TFormInitDBSet;
begin
  FormInitDBSet:=TFormInitDBSet.Create(nil);
  FormInitDBSet.ShowModal;
  FormInitDBSet.Free;
  ConnectDb;
end;

end.

⌨️ 快捷键说明

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