📄 treeview.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "TreeView.h"
#include "unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "mbCDBC"
#pragma link "mbDrvLib"
#pragma resource "*.dfm"
TfrmTree *frmTree;
//---------------------------------------------------------------------------
__fastcall TfrmTree::TfrmTree(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmTree::FormShow(TObject *Sender)
{
TTreeNode * RootNode = new TTreeNode(tvDir->Items);
Form1->mcdb->FindDir("\\");
RootNode = tvDir->Items->InsertObject(NULL,"CDROOT", Form1->mcdb->RootDir);
DisplayDir(RootNode, Form1->mcdb->RootDir);
tvDir->Selected = RootNode;
tvDirClick(Sender);
}
//---------------------------------------------------------------------------
TfrmTree::DisplayDir(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);
DisplayDir(Node, CurrentFile->DirRec);
}
CurrentFile = CurrentFile->Next;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmTree::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";
fl->Cells[3][0] = " Time";
while (f != NULL )
{
fl->Cells[0][i] = f->LongName;
if ( !(f->Attr & faDirectory))
{
fl->Objects[1][i] = (TObject *)f;
fl->Cells[1][i] = f->FileSize;
}
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 TfrmTree::flDblClick(TObject *Sender)
{
String TargetName;
PFileEntry SourceFile;
SourceFile = (PFileEntry)fl->Objects[1][fl->Row];
TargetName = SourceFile->LongName;
if ( ( (SourceFile->Attr & faDirectory) == faDirectory ))
{
ShowMessage("You can not extract directory, " + TargetName + " is a directory");
return;
}
if ( InputQuery("Extract File","Enter Filename and Path", TargetName) )
{
Form1->mcdb->ExtractFile(SourceFile, TargetName);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -