📄 disclayout.pas
字号:
unit DiscLayout;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, Grids, ExtCtrls, mbDrvLib, mbCDBC, mbISOLib, StdCtrls, Menus;
type
TfrmDiscLayout = class(TForm)
Panel2: TPanel;
Splitter1: TSplitter;
fl: TStringGrid;
PopupMenu2: TPopupMenu;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
PopupMenu1: TPopupMenu;
Delete1: TMenuItem;
tvDir: TTreeView;
Refresh1: TMenuItem;
bClose: TButton;
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);
procedure MenuItem1Click(Sender: TObject);
procedure Delete1Click(Sender: TObject);
procedure bCloseClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure DisplayDir(treenode: TTreeNode; Dir: PDirEntry);
end;
var
frmDiscLayout: TfrmDiscLayout;
mcdb: TMCDBurner;
implementation
uses unit1;
{$R *.DFM}
procedure TfrmDiscLayout.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 and faDirectory) = faDirectory) then
begin
Node := tvDir.Items.AddChildObject(treenode, CurrentFile.LongName, CurrentFile.DirRec);
DisplayDir(Node, CurrentFile.DirRec);
end;
CurrentFile := CurrentFile.Next;
end;
end;
procedure TfrmDiscLayout.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 TfrmDiscLayout.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 & Time ';
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, ' ');
fl.Cells[2, i] := FormatDateTime('mm-dd-yyy hh:nn:ss', f.Time);
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;
end;
procedure TfrmDiscLayout.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #27 then close;
end;
procedure TfrmDiscLayout.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmDiscLayout.Button1Click(Sender: TObject);
begin
while tvDir.Items.Count <> 0 do
tvDir.Items[0].Delete;
FormShow(Sender);
end;
procedure TfrmDiscLayout.Refresh1Click(Sender: TObject);
begin
Button1Click(Sender);
end;
procedure TfrmDiscLayout.MenuItem1Click(Sender: TObject);
var
SourceFile: PFileEntry;
p: PDirEntry;
begin
SourceFile := PFileEntry(fl.Objects[1,fl.Row]);
if SourceFile <> nil then if ((SourceFile.Attr and faDirectory) = faDirectory) then
begin
ShowMessage('You can not delete directory, '+SourceFile.LongName+' is a directory, use tree view to delete directory');
exit;
end;
if SourceFile <> nil then
begin
p := tvDir.Selected.Data;
mcdb.RemoveFile(p, SourceFile );
tvdirClick(Sender);
end;
end;
procedure TfrmDiscLayout.Delete1Click(Sender: TObject);
var
d: PDirEntry;
begin
d := tvDir.Selected.Data;
mcdb.RemoveDir(d);
Button1Click(Sender);
end;
procedure TfrmDiscLayout.bCloseClick(Sender: TObject);
begin
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -