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

📄 authorization.pas

📁 物资管理系统
💻 PAS
字号:
unit authorization;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, ValEdit;

type
  TfrmAuthorization = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    addUser: TPanel;
    Label1: TLabel;
    name: TEdit;
    Label2: TLabel;
    pwd: TEdit;
    Button1: TButton;
    Label3: TLabel;
    pwdconfirm: TEdit;
    Label4: TLabel;
    role: TComboBox;
    deleteUser: TPanel;
    Label5: TLabel;
    Button2: TButton;
    list1: TListBox;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmAuthorization: TfrmAuthorization;

implementation

{$R *.dfm}
uses comFunc;
procedure TfrmAuthorization.FormCreate(Sender: TObject);
var
   s1,s2,s3:string[60];
   f:file;
   nr:integer;
begin
   addUser.Visible:=true;
   deleteUser.Visible:=false;
   assignFile(f,'sys.ini');
   reset(f,1);
   repeat
      blockRead(f,s1,12,nr);
      blockRead(f,s2,12,nr);
      blockRead(f,s3,12,nr);
      //字符串信息解密
      s1:=Decrypt(s1,12345);
      if nr<>0 then
         list1.Items.Add(trim(s1));
   until(nr=0);
   closeFile(f);
end;

procedure TfrmAuthorization.BitBtn2Click(Sender: TObject);
begin
   addUser.Visible:=true;
   deleteUser.Visible:=false;
end;

procedure TfrmAuthorization.Button1Click(Sender: TObject);
var
   f:file;
   nr:integer;
   s1,s2,s3:string[60];
   size:longint;
begin
   //判断用户的有效性
   if name.Text='' then
   begin
      showMessage('请输入用户名!');
      pwd.Text:='';
      pwdConfirm.Text:='';
      activeControl:=name;
      exit;
   end;
   //关联并打开文件
   assignFile(f,'sys.ini');
   reSet(f,1);
   //检测用户是否已经存在
   repeat
      blockRead(f,s1,12,nr);
      blockRead(f,s2,12,nr);
      blockRead(f,s3,12,nr);
      s1:=Decrypt(s1,12345);//为字符串解密
      if s1=name.Text then
      begin
         showMessage('这个用户已经存在!');
         pwd.Text:='';
         pwdConfirm.Text:='';
         activeControl:=name;
         closeFile(f);
         exit;
      end;
   until(nr=0);
   closeFile(f);
   //检测密码输入是否一致
   if pwd.Text<>pwdconfirm.Text then
   begin
      MessageDlg('密码不一致',mtWarning,[mbOk],0);
      pwd.Text:='';
      pwdConfirm.Text:='';
      exit;
   end;
   //将新用户名,密码,权限写入系统配置文件
   reSet(f,1);
   size:=fileSize(f);
   seek(f,size);//移到文件尾
   s1:=name.Text;
   s2:=pwd.Text;
   s3:=inttostr(role.ItemIndex+1);
   //刷新列表
   list1.Items.Add(trim(s1));
   //给字符串加密
   s1:=Encrypt(s1,12345);
   s2:=Encrypt(s2,12345);
   s3:=Encrypt(s3,12345);
   //写入加密后的字符串信息
   blockWrite(f,s1,12,nr);
   blockWrite(f,s2,12,nr);
   blockWrite(f,s3,12,nr);
   closeFile(f);
   showMessage('添加用户成功!');
   //清屏操作
   name.Text:='';
   pwd.Text:='';
   pwdConfirm.Text:='';
   role.ItemIndex:=0;
   activeControl:=name;
end;
procedure TfrmAuthorization.BitBtn3Click(Sender: TObject);
begin
   deleteUser.Visible:=true;
   addUser.Visible:=false;
end;

procedure TfrmAuthorization.Button2Click(Sender: TObject);
var
   f1:file;
   f2:file;
   nr,nw:integer;
   s1,s2,s3:string[60];
begin
   //检查是否选中一个用户
   if list1.ItemIndex<0 then
   begin
      showMessage('请先选择要删除的用户');
      exit;
   end;
   {询问是否要真的删除}
   if MessageDlg('真的要删除用户吗?',mtConfirmation,[mbYes, mbNo],0)=mrNo then
      exit;
   {对配置文件相应项删除}
   //关联配置文件
   assignFile(f1,'sys.ini');
   //关联临时文件
   assignFile(f2,'tmp.ini');
   //打开配置文件
   reset(f1,1);
   //创建临时文件
   reWrite(f2,1);
   repeat
      blockRead(f1,s1,12,nr);
      blockRead(f1,s2,12,nr);
      blockRead(f1,s3,12,nr);
      s1:=Decrypt(s1,12345);
      if trim(s1)<>list1.Items[list1.ItemIndex] then
      begin
         s1:=Encrypt(s1,12345);
         blockWrite(f2,s1,12,nw);
         blockWrite(f2,s2,12,nw);
         blockWrite(f2,s3,12,nw);
      end;
   until(nr=0);
   //对文件进行关闭操作
   //closeFile(f1);
   //closeFile(f2);
   //把临时文件中的内容写回到配置文件中
   reWrite(f1,1);
   reSet(f2,1);
   repeat
      blockRead(f2,s1,12,nr);
      blockRead(f2,s2,12,nr);
      blockRead(f2,s3,12,nr);
      blockWrite(f1,s1,12,nw);
      blockWrite(f1,s2,12,nw);
      blockWrite(f1,s3,12,nw);
   until(nr=0);
   //对文件进行关闭操作
   closeFile(f1);
   closeFile(f2);
   //删除临时文件
   deleteFile('tmp.ini');
   {更新列表控件}
   list1.Items.Delete(list1.ItemIndex);
end;

end.

⌨️ 快捷键说明

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