www.gusucode.com > Delphi刻录软件源码程序 > Delphi刻录软件源码程序/ym_MagicCDDVDBurnerVCL-hicode/Examples/FullDemoC/DiscLayout.cpp
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "DiscLayout.h" #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "mbCDBC" #pragma link "mbDrvLib" #pragma resource "*.dfm" TfrmDiscLayout *frmDiscLayout; __fastcall TfrmDiscLayout::TfrmDiscLayout(TComponent* Owner) : TForm(Owner) { } TfrmDiscLayout::DisplayDirectory(TTreeNode * treenode, PDirEntry Dir) { TTreeNode * Node = new TTreeNode(tvDir->Items); PFileEntry CurrentFile; if (Dir == NULL) return 0; CurrentFile = Dir->Files; while ( CurrentFile != NULL ) { if (CurrentFile->Attr == faDirectory ) { Node = tvDir->Items->AddChildObject(treenode, CurrentFile->LongName, CurrentFile->DirRec); DisplayDirectory(Node, CurrentFile->DirRec); } CurrentFile = CurrentFile->Next; } } void __fastcall TfrmDiscLayout::FormShow(TObject *Sender) { TTreeNode * RootNode = new TTreeNode(tvDir->Items); Form1->mcdb->FindDir("\\"); RootNode = tvDir->Items->InsertObject(NULL,"CDROOT", Form1->mcdb->RootDir); DisplayDirectory(RootNode, Form1->mcdb->RootDir); tvDir->Selected = RootNode; tvDirClick(Sender); } void __fastcall TfrmDiscLayout::tvDirClick(TObject *Sender) { PDirEntry p; PFileEntry f; int i; p = (PDirEntry) 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 != NULL) { fl->Cells[0][i] = f->LongName; if ((f->Attr & faDirectory) != faDirectory) { 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); } else { fl->Cells[1][i] = " < DIR > "; fl->Objects[1][i] = (TObject *) f; } f = f->Next; i++; } if (i == 1) { fl->Rows[1]->Clear(); i = 2; } fl->RowCount = i; } void __fastcall TfrmDiscLayout::FormClose(TObject *Sender, TCloseAction &Action) { Action = caFree; } void __fastcall TfrmDiscLayout::MenuItem1Click(TObject *Sender) { PFileEntry SourceFile; PDirEntry p; SourceFile = (PFileEntry)fl->Objects[1][fl->Row]; if ( SourceFile != NULL) if ((SourceFile->Attr & faDirectory) == faDirectory) { ShowMessage("You can not delete directory, " + SourceFile->LongName + " is a directory, use tree view to delete directory"); return; } if ( SourceFile != NULL) { p = (TDEntry *) tvDir->Selected->Data; mcdb->RemoveFile(p, SourceFile ); tvDirClick(Sender); } }