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

📄 authorization.pas

📁 餐饮管理源代码 使用BDE Administrator在本地机器上添加一个Paradox数据库别名命名为WorkData
💻 PAS
字号:
unit authorization;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, ExtCtrls,addUser;

type
  TfrmAuthorization = class(TForm)
    TreeView1: TTreeView;
    GroupBox1: TGroupBox;
    Memo3: TMemo;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Memo1: TMemo;
    Memo2: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmAuthorization: TfrmAuthorization;

implementation

{$R *.dfm}

procedure TfrmAuthorization.Button1Click(Sender: TObject);
var
   f:file;                                  //文件类型变量
   rt:integer;                              //模式对话框返回值
   nr:integer;                              //一次读文件字节数
   s1,s2,s3:string[30];
   node:TTreeNode;                          //树节点
   s:string[30];
begin
   frmAddUser:=TFrmAddUser.Create(self);    //创建添加用户对话框
   rt:=frmAddUser.ShowModal;                //以模式对话框形式显示
   if rt=mrOk then
   begin
   treeView1.Items.Clear;
   node:=treeView1.Items.GetFirstNode;
   treeView1.Items.Add(node,'用户名');      //添加根结点
   node:=treeView1.Items.GetFirstNode;
   assignFile(f,'sys.ini');
   reSet(f,1);
   repeat                                  //从配置文件中读用户信息
      blockRead(f,s1,12,nr);
      blockRead(f,s2,12,nr);
      blockRead(f,s3,24,nr);
      if nr>0 then
         treeView1.Items.AddChildFirst(node,s1);//将读得得用户名加入树中显示
   until (nr=0);
   closeFile(f);
   treeView1.Select(node);               //选中树的根结点
   {权限说明不可见}
   Memo1.Visible:=false;
   Memo2.Visible:=false;
   Memo3.Visible:=false;
   end;
end;

procedure TfrmAuthorization.Button3Click(Sender: TObject);
begin
   close;
end;

procedure TfrmAuthorization.FormCreate(Sender: TObject);
var
   f:file;
   nr:integer;
   s1,s2,s3:string[30];
   node:TTreeNode;                      //声明一个树节点类型变量
   s:string[30];
begin
   node:=treeView1.Items.GetFirstNode;  //得到树的根节点
   assignFile(f,'sys.ini');             //关联用户配置文件
   reSet(f,1);                          //打开文件
   repeat
      blockRead(f,s1,12,nr);
      blockRead(f,s2,12,nr);
      blockRead(f,s3,24,nr);
      if nr>0 then
         treeView1.Items.AddChildFirst(node,s1);   //在根节点下添加子节点
   until (nr=0);
   closeFile(f);
   treeView1.Select(node);              //选中根结点
   {权限说明不显示}
   Memo1.Visible:=false;
   Memo2.Visible:=false;
   Memo3.Visible:=false;
end;
procedure TfrmAuthorization.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
   action:=caFree;
end;

procedure TfrmAuthorization.TreeView1Change(Sender: TObject;
  Node: TTreeNode);
var
   f:file;
   s,s1,s2,s3:string[30];
   i:integer;
   nr:integer;
begin
   i:=treeView1.Selected.AbsoluteIndex;
   s:=treeView1.Items.Item[i].Text;    //获得所选用户名
   assignFile(f,'sys.ini');           //关联配置文件
   reSet(f,1);                        //打开文件
   while not eof(f) do
   begin
      blockRead(f,s1,12,nr);
      blockRead(f,s2,12,nr);
      blockRead(f,s3,24,nr);
      if s=s1 then                    //在文件中找到匹配的用户名
      begin
         if s3='1' then               //所选用户名是管理权限
         begin
            Memo1.Visible:=true;
            Memo2.Visible:=false;
            Memo3.Visible:=false;
         end
         else if s3='2' then         //所选用户名是操作权限
         begin
            Memo1.Visible:=false;
            Memo2.Visible:=true;
            Memo3.Visible:=false;
         end
         else if s3='3' then        //所选用户名是访问者权限
         begin
            Memo1.Visible:=false;
            Memo2.Visible:=false;
            Memo3.Visible:=true;
         end;
         closeFile(f);
         exit;
      end
      else                         //选择的是根节点
         begin
            Memo1.Visible:=false;
            Memo2.Visible:=false;
            Memo3.Visible:=false;
         end;
   end;
   closeFile(f);
end;
procedure TfrmAuthorization.Button2Click(Sender: TObject);
var
   f,tmp:file;
   s:string[60];
   s1,s2,s3:string[60];
   i:integer;
   rt,nr:integer;
begin
   i:=treeView1.Selected.AbsoluteIndex;
   if i=0 then
      exit;
   s:=treeView1.Items.Item[i].Text;        //获得树中选中节点所代表的用户名
   {询问操作者是否一定要删除用户}
   rt:=MessageDlg('一定要删除用户'+s+'?',mtWarning,[mbYes,mbNo],0);
   if rt=mrNo then
      exit;
   assignFile(f,'sys.ini');               //关联用户配置文件
   assignFile(tmp,'tmp.tmp');             //关联临时文件
   {把配置文件中除所用户外的记录拷贝到临时文件中}
   reSet(f,1);
   reWrite(tmp,1);
   while not eof(f) do
   begin
      blockRead(f,s1,12,nr);
      blockRead(f,s2,12,nr);
      blockRead(f,s3,24,nr);
      if (s1<>s)and(nr>0)then
      begin
         blockWrite(tmp,s1,12,nr);
         blockWrite(tmp,s2,12,nr);
         blockWrite(tmp,s3,24,nr);
      end;
   end;
   closeFile(f);
   closeFile(tmp);
   {将临时文件的内容覆盖用户配置文件}
   reSet(tmp,1);
   reWrite(f,1);
   while not eof(tmp) do
   begin
      blockRead(tmp,s1,12,nr);
      blockWrite(f,s1,12,nr);
      blockRead(tmp,s2,12,nr);
      blockWrite(f,s2,12,nr);
      blockRead(tmp,s3,24,nr);
      blockWrite(f,s3,24,nr);
   end;
   closeFile(f);
   closeFile(tmp);
   treeView1.Selected.Delete;           //删除树中选中的节点
end;

end.

⌨️ 快捷键说明

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