QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2346|回复: 0
打印 上一主题 下一主题

用TreeView浏览目录

[复制链接]
字体大小: 正常 放大
韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

跳转到指定楼层
1#
发表于 2005-1-26 12:30 |只看该作者 |倒序浏览
|招呼Ta 关注Ta

( `1 Q8 Z# L' q8 o6 g! j void __fastcall TForm1::FormCreate(TObject *Sender) 6 W1 l0 l) x* ^{ - C$ b+ Z& [* o5 ~% V% p4 uCurrentDir=GetCurrentDir(); 7 N, q$ s( ^: ?" S8 V# o0 lUpdateTreeView(); 8 x& d3 S& o+ J s UpdateListView();

6 S. @4 E! E4 h# e( j

} , f, @, E( y, N& P" ]//--------------------------------------------------------------------------- 4 M& K( ]( }* J z3 U# Qvoid __fastcall TForm1::UpdateTreeView() : k0 S0 W) ^) }' j/ t& j { - V3 ], H7 O1 ?: a6 Z, GTTreeNode *rNode,*mNode; - w! D4 F6 j* b0 a; T, A TreeView1->Items->Clear(); 5 V1 y2 Q% ]! ~4 ]9 @* OrNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); 5 H+ g) S8 t& M- B rNode->ImageIndex=1; 5 h) M B8 i( mrNode->SelectedIndex=1; # Y3 A( R" ^. i9 ^* N( x$ ^) Z/ e mNode=TreeView1->Items->AddChild(rNode,"A:"); & s j( \. s- t. G0 C/ P mNode->ImageIndex=2; 8 M; R( {- H# y! w! [' [mNode->SelectedIndex=2; 9 k8 U' v9 A( Y R; E; \0 ]" LAddDirectory("A:",mNode); : W V! c- ^4 C$ w9 A4 Q for(int i=1;i<DriveComboBox1->Items->Count;i++) ; ~* V5 C6 h6 g2 E/ T+ ^! O0 p { # G+ a9 X) n1 P$ ] mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); 4 l, ^! }3 P6 J2 e& P1 gmNode->ImageIndex=3; " w' E! [& h. H" MmNode->SelectedIndex=3; % \8 ]4 d$ q; C8 S AddDirectory(AnsiString(char('B'+i))+":",mNode); 6 I3 Q7 W8 b, R7 M- _ } 1 Y2 ~; S! ~0 E$ e( }$ { } . T' U5 y' D) Q# c1 m//------------------------------------------------------------------------ . U. M2 n, O' tvoid TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) - T& n3 Q! h! G0 ?* N+ i& I{ 4 r. [# O w+ y5 o$ y2 \2 V) xTSearchRec sr; ; Z: I7 |& x! v5 \0 cTTreeNode *mNode; : F* w3 E& @2 r k. @* K if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) ( x' R' V. |1 {% l4 T/ x2 C1 G { - k% N0 k2 F. I if(sr.Attr==faDirectory) . w9 X' o6 B& O" [- H( D) q$ A. N { ' N \* p2 z+ o! l" n1 w if(sr.Name!="."&&sr.Name!="..") ' m1 }$ b( r" D& P0 m& Y8 L { [ R$ U1 [8 r- I' s! k5 bmNode=TreeView1->Items->AddChild(fNode,sr.Name); 8 W0 O$ ~( h& T7 vmNode->ImageIndex=0; ; z0 q3 X- m8 \5 S9 s/ BmNode->SelectedIndex=4; * e3 X2 `! v! I9 l* ~// AddDirectory(path+"\\"+sr.Name,mNode); ; O+ x m: W2 O8 i6 v} 9 I+ A8 Z4 r, {* ]6 R9 [- g- \' ] } 3 _" y, I+ ~' a: ^( c } 3 |. M9 F) U H8 p& w while(FindNext(sr)==0) . h, \7 Y o/ i& @6 a{ 8 k( I; e! }& |; @% z* ^if(sr.Attr==faDirectory) " C5 s0 `2 L! j5 o' T) l{ 4 A- ]) @. B$ |& _1 s0 j N if(sr.Name!="."&&sr.Name!="..") 9 k, _* U) W+ i1 |- D. { { & n! W! a( L; `! h3 ?& `/ emNode=TreeView1->Items->AddChild(fNode,sr.Name); 9 H5 w2 ~1 g/ H. tmNode->ImageIndex=0; 8 }% k! h) J3 `' Y1 Q& J7 F' a mNode->SelectedIndex=4; % W4 N" y* ^% s% J // AddDirectory(path+"\\"+sr.Name,mNode); # i5 o2 I7 r5 X6 c' J} # C5 m- \5 n; S3 g$ c' e+ _ } 7 e$ Z7 h$ m8 F' n9 @} 3 k. z/ L' t* _3 d5 e& y6 T1 e$ m FindClose(sr); : |( y/ r) E* _}

9 r8 Y2 v8 u0 T8 v- H8 o; B% l

//--------------------------------------------------------------------

6 d* ^) p3 D* k& Y$ H

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, 3 F8 s. p! c- e: o' T! xbool &AllowChange) : X2 _1 {: J e7 K1 q# T e$ J E. G{ 8 t: ]+ x, H7 |% }4 l! \Screen->Cursor=crHourGlass; & \; K& R9 ~* I0 E TSearchRec sr; % E+ k x& t# K9 i; A TTreeNode *NodeTmp=Node; % j$ D1 L, n L. e. Q AnsiString DirName,DirTmp; 6 Z2 V. q6 Z! R8 F! t; [( L z DirName=Node->Text; 6 O3 t) {. W4 Pfor(int i=Node->Level;i>1;i--) 1 J( `! I F( Z) { ~$ R{ 0 H% [3 P( Y& N1 lNodeTmp=NodeTmp->arent; ! g: B0 N9 J. N' B. L& t DirTmp=NodeTmp->Text; " {2 \! {4 A! f# L8 a if(DirTmp.SubString(DirTmp.Length(),1)!="\\") 4 v( D- Z2 P, d. hDirTmp+="\\"; 8 I8 c! K" t b$ R8 j DirName.Insert(DirTmp,0); ) E7 K) N8 R2 D: G) b+ E; d) b& G } ' U: X5 r: d' t, \* f if(DirName.SubString(DirName.Length(),1)!="\\") ( S$ w3 `0 G* ^$ b7 d9 VDirName+="\\"; , m+ w/ k. v8 m* Dfor(int j=0;j<Node->Count;j++) ) t9 y+ F+ Q# T8 _* Y { ) } m, ] D2 q" ~ ?5 ^2 T& j2 Z if(Node->Item[j]->Count==0); 6 Y: }- d# Q2 p5 _! G+ M { 9 G A2 m0 t" L+ ]9 o4 e* I if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) ( l, ]+ h9 ^8 W' t7 j{ 6 m% q3 V6 m7 j- q7 Kdo * f, c( {* s3 S9 ~{ 7 _: m5 D# p4 F; o/ @ //Node->Item[j]->ImageIndex=5; + S$ d/ O$ Q0 ]/ J9 @. M+ W //Node->Item[j]->SelectedIndex=4; 8 i9 U( ~ Y/ [& H% P6 Cif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") - x+ v* J/ k5 K7 e D9 c* s9 L% ? { * b7 A3 R# f8 y* j9 A3 K3 X Node->Item[j]->ImageIndex=0; 9 V. Q; Z3 a j6 P2 i8 }( Z/ ^) t( n5 g2 {Node->Item[j]->SelectedIndex=4; + u: p9 ~ R1 ~" P/ l TreeView1->Items->AddChild(Node->Item[j],sr.Name); 4 R8 w+ D+ P# R$ n} : _) `/ G; B% [# {7 o" r% k0 F } $ P) m. s5 \/ P3 Zwhile (FindNext(sr)==0); " G3 q; P4 b' W+ [FindClose(sr); & H9 R! u/ w. e7 L1 O. Z/ a } % ]& ~" a" {& \8 {1 n! ^} ) Q+ ?' }$ `. J3 f} 3 v: K8 j0 J6 h/ t* ^/ @& DScreen->Cursor=crDefault; - I, D6 r: f$ h0 f) j7 `}

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-6-11 18:07 , Processed in 0.434491 second(s), 52 queries .

回顶部