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

📄 unit5.pas

📁 刻录机源码
💻 PAS
字号:
unit Unit5;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, ExtCtrls, ComCtrls, StdCtrls, Menus, mbISOLib, mbDrvLib,
  mbCDBC;

type
  TForm5 = class(TForm)
    tvDir: TTreeView;
    Splitter1: TSplitter;
    fl: TStringGrid;
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    Panel2: TPanel;
    PopupMenu1: TPopupMenu;
    Delete1: TMenuItem;
    PopupMenu2: TPopupMenu;
    MenuItem1: TMenuItem;
    MenuItem2: TMenuItem;
    Refresh1: TMenuItem;
    MCDBurner1: TMCDBurner;
    procedure FormShow(Sender: TObject);
    procedure tvDirClick(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure Refresh1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure DisplayDir(treenode: TTreeNode; Dir: PDirEntry);
  end;

var
  Form5: TForm5;

implementation

uses unit1;
var
  mcdb: TMCDBurner;
{$R *.dfm}
procedure TForm5.DisplayDir(treenode: TTreeNode; Dir: PDirEntry);
var
  Node: TTreeNode;
  CurrentFile: PFileEntry;
begin
  if (Dir = nil) then exit;
  CurrentFile := Dir.Files;
  while CurrentFile <> nil do
  begin
    if CurrentFile.Attr = faDirectory then
    begin
      Node := tvDir.Items.AddChildObject(treenode, CurrentFile.LongName, CurrentFile.DirRec);
      DisplayDir(Node, CurrentFile.DirRec);
    end;
    CurrentFile := CurrentFile.Next;
  end;
end;

procedure TForm5.FormShow(Sender: TObject);
var
  RootNode: TTreeNode;
begin
  mcdb := form1.mcdb;
  RootNode := tvdir.Items.InsertObject(nil,'CDROOT', mcdb.RootDir);
  DisplayDir(RootNode, mcdb.RootDir);
  tvdir.Selected := RootNode;
  tvdirClick(Sender);
end;

procedure TForm5.tvDirClick(Sender: TObject);
var
  p: PDirEntry;
  f: PFileEntry;
  i: Integer;
begin
  p := tvDir.Selected.Data;
  f := p.Files;
  i := 1;
  fl.Cells[0, 0] := 'File Name';
  fl.Cells[1, 0] := 'File Size';
  fl.Cells[2, 0] := '   Date';
  fl.Cells[3, 0] := '  Time';
  while f <> nil do
  begin
    fl.Cells[0, i] := f.LongName;
    if ((f.Attr and faDirectory) <> faDirectory) then
    begin
      fl.Objects[1, i] := TObject(f);
      fl.Cells[1, i] := IntToDec(f.FileSize, 9, ' ')
    end
    else
    begin
      fl.Cells[1, i] := ' < DIR > ';
      fl.Objects[1, i] := TObject(f);
    end;
    f := f.Next;
    Inc(i);
  end;
  if i = 1 then
  begin
   fl.Rows[1].Clear;
   i := 2;
  end;
  fl.RowCount := i;
{  lb.Clear;
  for i:=1 to DirCounter -1 do
  begin
    p := Dirs[i];
    lb.Items.Add(p.LongName);
  end;}
end;

procedure TForm5.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #27 then close;
end;

procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TForm5.Button1Click(Sender: TObject);
begin
  while tvDir.Items.Count <> 0 do
    tvDir.Items[0].Delete;
  FormShow(Sender);
end;

procedure TForm5.Refresh1Click(Sender: TObject);
begin
  Button1Click(Sender);
end;

end.

⌨️ 快捷键说明

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