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

📄 unit3.pas

📁 一个用DELPHI编的酒店管理系统。 其中数据库:SQL Server2000, 只需恢复 My database文件夹中 My database_Data.MDF和 My database_Log.
💻 PAS
字号:
unit Unit3;

interface

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

type
  TForm3 = class(TForm)
    TreeView1: TTreeView;
    GroupBox1: TGroupBox;
    add: TButton;
    delete: TButton;
    Button3: TButton;
    Memo3: TMemo;
    Memo2: TMemo;
    Memo1: TMemo;
    
    procedure addClick(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure deleteClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

uses Unit4;

{$R *.dfm}

procedure TForm3.addClick(Sender: TObject);
var
   f:file;                                  //文件类型变量
   rt:integer;                              //模式对话框返回值
   nr:integer;                              //一次读文件字节数
   s1,s2,s3:string[30];
   node,node1,node2,node3:TTreeNode;                          //树节点
   s:string[30];
begin
   form4:=Tform4.Create(self);    //创建添加用户对话框
   rt:=form4.ShowModal;                //以模式对话框形式显示
   if rt=mrOk then
   begin
   treeView1.Items.Clear;
   node:=treeView1.Items.Add(node,'用户名');      //添加根结点
   node1:=treeview1.Items.AddChild(node,'管理员');
   node2:=treeview1.Items.AddChild(node,'操作员');
   node3:=treeview1.Items.AddChild(node,'访问者');
   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
       begin
      if s3='管理员' then
         treeView1.Items.AddChildFirst(node1,s1)//将读得得用户名加入树中显示
      else if s3='操作员' then
         treeView1.Items.AddChildFirst(node2,s1)
      else if s3='访问者' then
         treeView1.Items.AddChildFirst(node3,s1)
       end;

   until (nr=0);
   closeFile(f);
   treeView1.Select(node);               //选中树的根结点
   {权限说明不可见}
   Memo1.Visible:=false;
   Memo2.Visible:=false;
   Memo3.Visible:=false;
   end;
   form3.close;
end;

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

procedure TForm3.FormCreate(Sender: TObject);
var
   f:file;
   nr:integer;
   s1,s2,s3:string[30];
   node,node1,node2,node3: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 TForm3.deleteClick(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;
   form3.Close;          //删除树中选中的节点
end;

procedure TForm3.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='管理员' then               //所选用户名是管理权限
         begin
            Memo3.Visible:=true;
            Memo2.Visible:=false;
            Memo1.Visible:=false;
         end
         else if s3='操作员' then         //所选用户名是操作权限
         begin
            Memo3.Visible:=false;
            Memo2.Visible:=true;
            Memo1.Visible:=false;
         end
         else if s3='访问者' then        //所选用户名是访问者权限
         begin
            Memo3.Visible:=false;
            Memo2.Visible:=false;
            Memo1.Visible:=true;
         end;
         closeFile(f);
         exit;
      end
      else                         //选择的是根节点
         begin
            Memo1.Visible:=false;
            Memo2.Visible:=false;
            Memo3.Visible:=false;
         end;
   end;
   closeFile(f);
end;

end.


⌨️ 快捷键说明

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