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

📄 bmen.~pas

📁 一个文件管理的程序
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit bmen;

interface

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

type
  TForm4 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    treeview1: TTreeView;
    DataSource1: TDataSource;
    ADODataSet1: TADODataSet;
    ADODataSet2: TADODataSet;
    DataSource2: TDataSource;
    DataSource3: TDataSource;
    ADODataSet3: TADODataSet;
    DataSource4: TDataSource;
    ADODataSet4: TADODataSet;
    ADODataSet5: TADODataSet;
    DataSource5: TDataSource;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    Image7: TImage;
    procedure FormShow(Sender: TObject);
    procedure treeview1Click(Sender: TObject);
    procedure Image2Click(Sender: TObject);
    procedure Image4Click(Sender: TObject);
    procedure Image6Click(Sender: TObject);
    procedure Image3MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image4MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image5MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image6MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image7MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form4: TForm4;
  edit:string;
implementation

{$R *.dfm}

procedure TForm4.FormShow(Sender: TObject);
var
z:integer;
catnode1,catnode2,catnode3,catnode4, catnode5:ttreenode;
g,h,j,k:integer;
begin
  adodataset1.Active:=false;
  adodataset1.CommandText:='select distinct department1 from department order by department1 desc';
  adodataset1.Active:=true;
  adodataset2.Active:=false;
  adodataset2.Active:=true;
  adodataset3.Active:=false;
  adodataset3.Active:=true;
  adodataset4.Active:=false;
  adodataset4.Active:=true;
  adodataset5.Active:=true;
  adodataset5.Active:=true;
  catnode1:=treeview1.Items.GetFirstNode;
  treeview1.Selected:=catnode1;
  treeview1.Selected.Delete;
  treeview1.Items.AddFirst(nil,'根');
  adodataset1.First;
  for g:=0 to adodataset1.RecordCount-1 do    //在treeview 中显示主题结构
  begin     //(1-1)
   if (trim(adodataset1.FieldValues['department1'])<>NULL)and (trim(adodataset1.FieldValues['department1'])<>'') then
    begin   //(1-2)
     catnode1:=treeview1.Items.GetFirstNode;      //  添加第一个字段
     treeview1.Items.AddChildFirst(catnode1,adodataset1.FieldValues['department1']);
      //过滤第一字段
     adodataset2.Filter:='department1='''+adodataset1.FieldValues['department1']+'''';
     adodataset2.Filtered:=true;
     adodataset2.First;
     if  adodataset2.RecordCount<>0 then
     begin//(2-1)                                //添加第二个字段
     for h:=0 to adodataset2.RecordCount-1 do
      begin//(2-2)
       if (adodataset2.FieldValues['department2']<>NULL) and (trim(adodataset2.FieldValues['department2'])<>'') then
        begin//(2-3)
         catnode2:=catnode1.GetNext;
         treeview1.Items.AddChildFirst(catnode2,adodataset2.FieldValues['department2']);
         adodataset3.Filter:='department1='''+adodataset2.FieldValues['department1']+'''and department2='''+adodataset2.FieldValues['department2']+''''; //对第二个字段进行过滤
         adodataset3.Filtered:=true;
         adodataset3.First;
         if adodataset3.RecordCount<>0 then
            begin//(3-1)                                  //添加第三个字段
              for j:=0 to adodataset3.RecordCount-1 do
              begin//(3-2)
               if (adodataset3.FieldValues['department3']<>NULL) and (trim(adodataset3.FieldValues['department3'])<>'') then
                  begin//(3-3)
                     catnode3:=catnode2.GetNext;
                     treeview1.Items.AddChildFirst(catnode3,adodataset3.FieldValues['department3']);
                     adodataset4.Filter:='department1='''+adodataset3.FieldValues['department1']+'''and department2='''+adodataset3.FieldValues['department2']+'''and department3='''+adodataset3.FieldValues['department3']+''''; //对第三个字段进行过滤
                     adodataset4.Filtered:=true;
                     adodataset4.First;
                    if adodataset4.RecordCount<>0 then
                     begin//(4-1)
                      for k:=0 to adodataset4.RecordCount-1 do    //添加第四字段
                        begin//(4-2)
                         if (adodataset4.FieldValues['department4']<>NULL) and (trim(adodataset4.FieldValues['department4'])<>'') then
                          begin//(4-3)
                           catnode4:=catnode3.GetNext;
                           treeview1.Items.AddChildFirst(catnode4,adodataset4.FieldValues['department4']);
                           adodataset5.Filter:='department1='''+adodataset4.FieldValues['department1']+'''and department2='''+adodataset4.FieldValues['department2']+'''and department3='''+adodataset4.FieldValues['department3']+'''and department4='''+adodataset4.FieldValues['department4']+'''';
                           adodataset5.Filtered:=true;
                           adodataset5.First;
                           if adodataset5.RecordCount<>0 then
                            begin //(5-1)
                             for z:=0 to adodataset5.RecordCount-1 do
                             begin //(5-2)
                               if (trim(adodataset5.FieldValues['department5'])<>NULL)and (trim(adodataset5.FieldValues['department5'])<>'') then
                                begin//(5-3)
                                 catnode5:=catnode4.GetNext;
                                 treeview1.Items.AddChildFirst(catnode5,adodataset5.FieldValues['department5']);
                                end;//(5-3)
                              adodataset5.Next;
                                end;//(5-2)
                               end;//(5-1)
                             end; //(4-3)
                          adodataset4.Next;
                        end;//(4-2)
                     end;//(4-1)
                  end; //(3-3)
              adodataset3.Next;
               end;//(3-2)
            end;//(3-1)
        end; //(2-3)
        adodataset2.Next;
      end;//(2-2)
     end;//(2-1)
    end;//(1-2)
   adodataset1.Next;
  end;
end; //(1-1)
procedure TForm4.treeview1Click(Sender: TObject);
var
t1,t2,t3,t4,t5,t6:string;
begin
   edit1.Text:='';
   edit4.Text:='';
   edit5.Text:='';
   edit6.Text:='';
   edit7.Text:='';
   edit8.Text:='';
   edit2.Text:=treeview1.Selected.Text;
   edit:=edit2.Text;
 try     //1
  t1:=treeview1.Selected.Parent.Text;
 except
    edit1.Text:='';
    edit4.Text:='';
    edit5.Text:='';
    edit6.Text:='';
    edit7.Text:='';
    edit8.Text:='';
    edit3.Text:=treeview1.Selected.Text;
    exit;
 end;
  try     //2
   t2:=treeview1.Selected.Parent.Parent.Text;
 except
   edit1.Text:='';
   edit3.Text:='';
   edit5.Text:='';
   edit6.Text:='';
   edit7.Text:='';
   edit8.Text:='';
   edit4.Text:=treeview1.Selected.Text;
   exit;
 end;
  try     //3
   t3:=treeview1.Selected.Parent.Parent.Parent.Text;
 except
   edit1.Text:='';
   edit3.Text:='';
   edit4.Text:='';
   edit6.Text:='';
   edit7.Text:='';
   edit8.Text:='';
   edit5.Text:=treeview1.Selected.Text;
   exit;
 end;
  try     //4
   t4:=treeview1.Selected.Parent.Parent.Parent.Parent.Text;
 except
    edit1.Text:='';
    edit3.Text:='';
    edit4.Text:='';
    edit5.Text:='';
    edit7.Text:='';
    edit8.Text:='';
    edit6.Text:=treeview1.Selected.Text;
    exit;
 end;
  try     //5
   t5:=treeview1.Selected.Parent.Parent.Parent.Parent.Parent.Text;
 except
    edit1.Text:='';
    edit3.Text:='';
    edit4.Text:='';
    edit5.Text:='';
    edit6.Text:='';
    edit8.Text:='';
    edit7.Text:=treeview1.Selected.Text;
    exit;
  end;
 try     //6
   t6:=treeview1.Selected.Parent.Parent.Parent.Parent.Parent.Parent.Text;
 except
    edit1.Text:='';
    edit3.Text:='';
    edit4.Text:='';
    edit5.Text:='';
    edit6.Text:='';
    edit7.Text:='';
    edit8.Text:=treeview1.Selected.Text;
    exit;
  end;
end;
procedure TForm4.Image2Click(Sender: TObject);
var                          //对树状结构进行删除操作
i,j,k,h,t,q,w,e,r:integer;
begin//(1-1)
 if (trim(edit2.Text)='') and (trim(edit1.Text)='') then
  begin
   showmessage('请选择要删除的主题词!');
   exit;
  end;
 if messagedlg('数据删除不可恢复是否要删除数据?',mtwarning,[mbyes,mbno],1)=mryes then
  begin
   if trim(edit8.Text)<>'' then                  //5
    begin
     adodataset1.Active:=false;
     adodataset1.CommandText:='select * from total where department like '+''''+treeview1.Selected.Parent.Parent.Parent.Parent.Text+treeview1.Selected.Parent.Parent.Parent.Text+treeview1.Selected.Parent.Parent.Text+treeview1.Selected.Parent.Text+edit8.text+'%'+'''';
     adodataset1.Active:=true;
     adodataset1.First;
     for i:=0 to adodataset1.RecordCount-1 do
      begin
       deletefile(adodataset1.Fields[4].AsString); //按指定的文件路径删除文件
                          //删除主数据库
       adodataset1.Edit;
       adodataset1.Delete;
       adodataset1.Next;
      end;
        //删除空目录
      removedir(getcurrentdir+'\'+treeview1.Selected.Parent.Parent.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Text+'\'+edit8.Text);
      adodataset5.Filter:='department1='''+treeview1.Selected.Parent.Parent.Parent.Parent.Text+'''and department2='''+treeview1.Selected.Parent.Parent.Parent.Text+'''and department3='''+treeview1.Selected.Parent.Parent.Text+'''and department4='''+treeview1.Selected.Parent.Text+'''and department5='''+edit8.Text+'''';
      adodataset5.Filtered:=true;
      adodataset5.First;
     for r:=0 to adodataset5.RecordCount-1 do
      begin
       adodataset5.Edit;
       adodataset5.Delete;
       adodataset5.Next;
      end;
   end;
  if trim(edit7.Text)<>'' then                  //4
   begin
    adodataset1.Active:=false;
    adodataset1.CommandText:='select * from total where department like '+''''+treeview1.Selected.Parent.Parent.Parent.Text+treeview1.Selected.Parent.Parent.Text+treeview1.Selected.Parent.Text+edit7.text+'%'+'''';
    adodataset1.Active:=true;
    adodataset1.First;
    for j:=0 to adodataset1.RecordCount-1 do
     begin
      deletefile(adodataset1.Fields[4].AsString); //按指定的文件路径删除文件
      //删除数据库
      adodataset1.Edit;   //(总表)
      adodataset1.Delete;
      adodataset1.Next;
     end;
      removedir(getcurrentdir+'\'+treeview1.Selected.Parent.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Text+'\'+edit7.Text);       //删除空目录
      adodataset5.Filter:='department1='''+treeview1.Selected.Parent.Parent.Parent.Text+'''and department2='''+treeview1.Selected.Parent.Parent.Text+'''and department3='''+treeview1.Selected.Parent.Text+'''and department4='''+edit7.Text+'''';
      adodataset5.Filtered:=true;
      adodataset5.First;
      for r:=0 to adodataset5.RecordCount-1 do
       begin
        adodataset5.Edit;
        adodataset5.Delete;
        adodataset5.Next;
       end;
    end;
   if trim(edit6.Text)<>'' then                   //3
       begin
        adodataset1.Active:=false;
        adodataset1.CommandText:='select * from total where department like '+''''+treeview1.Selected.Parent.Parent.Text+treeview1.Selected.Parent.Text+edit6.text+'%'+'''';
        adodataset1.Active:=true;
        adodataset1.First;
       for h:=0 to adodataset1.RecordCount-1 do
        begin
         deletefile(adodataset1.Fields[4].AsString); //按指定的文件路径删除文件
                                //删除数据库
         adodataset1.Edit;
         adodataset1.Delete;
         adodataset1.Next;
        end;                                                                                                           //删除空目录
       removedir(getcurrentdir+'\'+treeview1.Selected.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Text+'\'+edit6.Text);
       adodataset5.Active:=false;        //删除当前数据库
       adodataset5.Active:=true;
       adodataset5.Filter:='department1='''+treeview1.Selected.Parent.Parent.Text+'''and department2='''+treeview1.Selected.Parent.Text+'''and department3='''+edit6.Text+'''';
       adodataset5.Filtered:=true;
       adodataset5.First;
       for e:=0 to adodataset5.RecordCount-1 do
        begin
         adodataset5.Edit;
         adodataset5.Delete;
         adodataset5.Next;
        end;
      end;
      if trim(edit5.Text)<>'' then                  //2
       begin
        adodataset1.Active:=false;
        adodataset1.CommandText:='select * from total where department like '+''''+treeview1.Selected.Parent.Text+edit5.text+'%'+'''';
        adodataset1.Active:=true;
        adodataset1.First;
       for k:=0 to adodataset1.RecordCount-1 do
        begin
         deletefile(adodataset1.Fields[4].AsString); //按指定的文件路径删除文件
         //删除数据库
         adodataset1.Edit;
         adodataset1.Delete;
         adodataset1.Next;
        end;
       removedir(getcurrentdir+'\'+treeview1.Selected.Parent.Text+'\'+edit5.Text);
       adodataset5.Active:=false;        //删除当前数据库
       adodataset5.Active:=true;
       adodataset5.Filter:='department1='''+treeview1.Selected.Parent.Text+'''and department2='''+edit5.Text+'''';
       adodataset5.Filtered:=true;
       adodataset5.First;
       for w:=0 to adodataset5.RecordCount-1 do
        begin
         adodataset5.Edit;
         adodataset5.Delete;
         adodataset5.Next;
        end;
      end;
   if trim(edit4.Text)<>'' then                   //1
       begin
        adodataset1.Active:=false;
        adodataset1.CommandText:='select * from total where department like '+''''+'%'+edit4.text+'%'+'''';
        adodataset1.Active:=true;
        adodataset1.First;
       for t:=0 to adodataset1.RecordCount-1 do
        begin
         deletefile(adodataset1.Fields[4].AsString); //按指定的文件路径删除文件
                                //删除总数据库
         adodataset1.Edit;

⌨️ 快捷键说明

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