3 |2 Z- G9 G4 ?% _7 _5 }& n void __fastcall TForm1::FormCreate(TObject *Sender) { 1 b) P6 }- l. F: b9 H, z8 w: w CurrentDir=GetCurrentDir(); UpdateTreeView(); - i% o. m4 G6 ~+ k. r' p UpdateListView();
6 D+ N+ _4 V8 \" n* e} 3 L6 Z. z) D/ d //--------------------------------------------------------------------------- , _1 |; f! J; [" k void __fastcall TForm1::UpdateTreeView() 4 U4 m( n V+ j# b0 }0 ^ { TTreeNode *rNode,*mNode; TreeView1->Items->Clear(); rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); rNode->ImageIndex=1; [ X n% W8 U$ N# b$ ` rNode->SelectedIndex=1; 2 ~/ o7 w9 s8 u% J. H5 z mNode=TreeView1->Items->AddChild(rNode,"A:"); mNode->ImageIndex=2; mNode->SelectedIndex=2; AddDirectory("A:",mNode); for(int i=1;i<DriveComboBox1->Items->Count;i++) $ P9 l% N' D7 S1 A+ U { 3 G0 @) t; M3 G* Z" v7 p mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); , Q3 F7 C1 Q8 w mNode->ImageIndex=3; mNode->SelectedIndex=3; 7 P+ z' D5 n, Q' B AddDirectory(AnsiString(char('B'+i))+":",mNode); } A9 R0 E# ~' q" F0 X; ~2 V9 ?3 p } . i" \3 `; J! }0 M% B+ O1 ]" V //------------------------------------------------------------------------ void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) { 3 o( I0 b8 E9 D- A/ _ TSearchRec sr; TTreeNode *mNode; if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) 5 z! t1 d8 s0 D { * c* H% B7 J# E% n( R: _4 n if(sr.Attr==faDirectory) ' g; [$ @, X8 H0 ? { if(sr.Name!="."&&sr.Name!="..") { 1 T6 @8 P6 C# I( x* J mNode=TreeView1->Items->AddChild(fNode,sr.Name); mNode->ImageIndex=0; % |$ ^2 P! F, @; Y' b& k mNode->SelectedIndex=4; ) [" n; ?/ l1 A; N // AddDirectory(path+"\\"+sr.Name,mNode); } } 3 W2 d; t- Z' \( \) G# S/ Z" u/ R } while(FindNext(sr)==0) $ K$ Z3 Y) x& o) |% n1 t { & d; {- n; S4 }; H& b if(sr.Attr==faDirectory) 5 v, a, L R$ C! n4 Z" s3 S; i { if(sr.Name!="."&&sr.Name!="..") # n2 q7 y; J- [1 k; O D3 @ { mNode=TreeView1->Items->AddChild(fNode,sr.Name); mNode->ImageIndex=0; mNode->SelectedIndex=4; 4 q$ v# T3 T+ r5 I( A" l4 V // AddDirectory(path+"\\"+sr.Name,mNode); } 8 f. ~" @8 f" v! G0 w3 O8 k } ) s6 S( R3 P v } $ |! ?4 x* v; R FindClose(sr); ) v' T. j) _6 x$ q8 c }
; w/ s0 j2 d% ] C0 a//--------------------------------------------------------------------
void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, . j. t5 ?( Y9 a4 B5 p, {! C
bool &AllowChange)
{ 1 H( q& l6 X z+ x0 I
Screen->Cursor=crHourGlass;
TSearchRec sr; $ d6 e3 w. ~- d/ U7 v
TTreeNode *NodeTmp=Node; + ]* e7 i( S6 n
AnsiString DirName,DirTmp; 1 ~5 O% B* O$ }+ R) |. x- r
DirName=Node->Text; ! F# g5 x; v7 c8 i$ G
for(int i=Node->Level;i>1;i--) 5 H4 S7 n: l" m/ Z! `; P
{ , Z2 [3 q$ {# G
NodeTmp=NodeTmp->
arent; * e+ F* I% h8 @' g
DirTmp=NodeTmp->Text;
if(DirTmp.SubString(DirTmp.Length(),1)!="\\") 8 u/ D/ q( G( \$ X. s* a+ X5 e+ W5 F
DirTmp+="\\"; ! M' p0 h) J8 H; Q- g
DirName.Insert(DirTmp,0);
} ) T" s2 B+ U( a2 J8 d$ x2 ^
if(DirName.SubString(DirName.Length(),1)!="\\") 8 u5 @! `0 v6 H" J; [! {
DirName+="\\"; 3 C; S8 A C; p1 @- w
for(int j=0;j<Node->Count;j++)
{
if(Node->Item[j]->Count==0); " m: d1 f" P5 L% m
{
if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0)
{ & I3 q8 Z8 H4 n
do " D5 b4 K/ j5 t* ~9 [6 ]3 R- [
{
//Node->Item[j]->ImageIndex=5; C$ ~: d; D3 c. D$ n6 P4 J9 `4 ^
//Node->Item[j]->SelectedIndex=4; ) r# F' o; D1 i8 N: ^: [ o
if((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..")
{ 2 i" O; ~" V! i0 }) `3 b5 j* K
Node->Item[j]->ImageIndex=0;
Node->Item[j]->SelectedIndex=4;
TreeView1->Items->AddChild(Node->Item[j],sr.Name); ' C5 P% [/ j& ]; @5 o- I
}
}
while (FindNext(sr)==0); k8 `0 L- |' ^6 n6 E
FindClose(sr);
}
} 4 U7 T/ z; ?& o. N
}
Screen->Cursor=crDefault;
}
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |