QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

* y5 s* [' n; B' I void __fastcall TForm1::FormCreate(TObject *Sender) - C: F% ?; [9 \, D { O, ]) v. ~9 ]4 z) \( ]( u3 {3 p CurrentDir=GetCurrentDir(); ; i' @. _' O4 C) ^ b" dUpdateTreeView(); ' O; u4 ~3 Q, B, }7 M UpdateListView();

- R! A8 E8 r; ]

} , V# j$ ]! X1 ^# F' s$ r //--------------------------------------------------------------------------- 2 t5 B4 H% |: z1 p; b void __fastcall TForm1::UpdateTreeView() K5 `7 I$ v: `" ]+ d{ 5 L. V! |# V' z: e }2 B2 Z& G# oTTreeNode *rNode,*mNode; ) S* O5 P/ q9 k8 \. r" XTreeView1->Items->Clear(); 1 n( r9 g! u% t/ E3 b, C rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); * ?2 _. @# h9 f7 @; y/ h$ | rNode->ImageIndex=1; , h& P& E% H0 n+ B5 V" @ rNode->SelectedIndex=1; * \$ ~3 ^! D4 n5 `5 W mNode=TreeView1->Items->AddChild(rNode,"A:"); " C5 B% ^/ v2 K: w8 m1 N( b2 ?0 VmNode->ImageIndex=2; 5 Z0 b( Z7 M6 k7 r5 i3 Z mNode->SelectedIndex=2; 8 b6 K( w! z. d; d- @. m AddDirectory("A:",mNode); ! l' n r8 \$ m5 V8 |( _ for(int i=1;i<DriveComboBox1->Items->Count;i++) , q( y7 g* [$ @1 i( R { ) X6 W+ M4 c9 K) g6 i6 S mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); ) I; [; s2 z7 b1 X mNode->ImageIndex=3; 4 d; Y6 M4 ~; x& N" dmNode->SelectedIndex=3; : x) V0 z8 J/ A AddDirectory(AnsiString(char('B'+i))+":",mNode); " H) I3 ]# {4 ^5 O; o7 ~/ W} 8 p4 \) ^/ P" M8 _5 g3 a} 7 h7 G2 X* U6 d! ^& y //------------------------------------------------------------------------ 2 b- G2 y# W5 b; l! Nvoid TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) & i( s5 w% H$ \& ^2 z; n t { ( H) s$ \, J! B- v+ Y* n! ETSearchRec sr; ) U h* f5 K" d: y. x$ `2 m7 s" ^ TTreeNode *mNode; 3 C$ }, J4 I) C ] if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) 0 b3 G5 v t1 f{ 5 H, }8 n, V3 | if(sr.Attr==faDirectory) : u' x3 l9 o' q* q) ?1 S{ , V# J/ \# j7 v2 w6 P. ~$ Oif(sr.Name!="."&&sr.Name!="..") & h3 D* i: _" C{ / A ?5 p& U2 w mNode=TreeView1->Items->AddChild(fNode,sr.Name); 5 ?/ [) }. q6 G5 `, ]# qmNode->ImageIndex=0; - [8 S0 R. Q+ B9 l4 C/ v. cmNode->SelectedIndex=4; # V: |7 F: i x" V! Z# f: i+ u// AddDirectory(path+"\\"+sr.Name,mNode); 7 N/ a/ c* J. J+ P4 A- h} / V) e; p5 g( f! n$ {} - F/ d; l/ K6 @; w1 s3 o } " T! `, x( T, k# g- u3 G& swhile(FindNext(sr)==0) ; u6 R5 W+ [/ W( _+ e { ; A. l% E8 z1 \. e- ~! bif(sr.Attr==faDirectory) ) ]' q) ?' V+ `6 c; h0 e4 ^, f { , ?3 x4 [3 u N5 W; d, P# h4 X- a if(sr.Name!="."&&sr.Name!="..") 7 m; v) O: o; L7 p1 g" i* r{ , P- D5 a0 C Q8 X mNode=TreeView1->Items->AddChild(fNode,sr.Name); : m. G$ C( C5 DmNode->ImageIndex=0; 0 e5 H- k2 _8 Q1 G: OmNode->SelectedIndex=4; . @8 j/ e: ]- Q) d( Q( i/ v- k0 ]// AddDirectory(path+"\\"+sr.Name,mNode); 1 R }7 P- K- d: L6 M$ H3 i. U } 2 d$ ~5 d, d t" h8 r) y9 u} # }# s+ a3 D- B$ l} + {' k5 f' J+ t. a6 ?) j4 Y# }FindClose(sr); $ r! m1 O% z5 X" }% q }

: \0 |! o P1 g# V, W

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

4 y/ e; B% S8 r$ E9 y- g2 z6 E

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, ; b( ]7 K8 l6 d" x" D bool &AllowChange) / J) `; z1 o) i. q! E{ 8 ~% q% n- P5 i/ a: [( P' e# wScreen->Cursor=crHourGlass; " p( t& Q6 O1 A% o+ q TSearchRec sr; / S2 g T4 N4 C8 O$ a0 L8 O1 I6 mTTreeNode *NodeTmp=Node; & \; h' ]/ ]8 y, E% G$ m; H$ g; i# N5 N AnsiString DirName,DirTmp; ( {- ] A9 u; d5 N* W% G/ d DirName=Node->Text; 2 Y+ b! R4 T* o# J! f# s for(int i=Node->Level;i>1;i--) & [, J2 k' _3 t3 s7 x# F8 r{ 8 x8 t5 x2 R3 g" `* j$ m+ PNodeTmp=NodeTmp->arent; , b+ K7 E1 J; L, \: a1 S DirTmp=NodeTmp->Text; & t+ b7 y2 z. c# E* f& ` if(DirTmp.SubString(DirTmp.Length(),1)!="\\") ! _9 j* o5 q# g( ^" q8 J2 PDirTmp+="\\"; 7 d; p* k) ^2 I+ u& s1 ]7 G c! ^DirName.Insert(DirTmp,0); ; @$ C1 p- T8 v2 F% U+ W5 L- @, Q9 e } 3 C) F! Q+ S! W3 l if(DirName.SubString(DirName.Length(),1)!="\\") - I. Z3 T3 G! L, K" R DirName+="\\"; . A+ k! D/ _7 U; n' i' [$ Vfor(int j=0;j<Node->Count;j++) / l' _+ k7 C+ ?% W" B% N6 U{ : ~7 m" C7 E1 o5 H/ m7 Z if(Node->Item[j]->Count==0); # ? u" e4 D5 W! O. ^) U! w! l{ , S% \1 N: m. Q6 p7 f8 }: gif (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) , K0 m' [' ?( r& f5 {4 \4 r" P{ * {8 G+ |) {: ?6 y/ P3 a4 p do ' q1 j$ f. S9 z$ ]% @& s { & A: s8 `6 k2 j //Node->Item[j]->ImageIndex=5; 3 ^+ T. u! }/ q //Node->Item[j]->SelectedIndex=4; . p. _1 F3 Y9 v+ Y u. b; E$ l/ _if((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") / d6 |% H3 m) ?4 O1 \& [ { / c; B' n4 M5 O- INode->Item[j]->ImageIndex=0; ; L: R- a' ^' ]1 O% |/ }Node->Item[j]->SelectedIndex=4; r6 v. A# n! h& m6 b- fTreeView1->Items->AddChild(Node->Item[j],sr.Name); 2 q+ P, f7 M. n} % S8 k' K0 O$ z( k, C) }} " Z6 p; j4 ?- u. lwhile (FindNext(sr)==0); 1 R4 F2 Z# Y1 a2 Q2 o/ `2 Q) J7 x0 s FindClose(sr); 0 T& F5 \; C& Y+ g h} 5 Q! ~. d5 U) V } % ~$ w! I4 T& \) ^( p* G. ^} 9 m4 ~. B+ U, d( O X& kScreen->Cursor=crDefault; 2 r1 g& I. q6 J w: |4 O}

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-8-10 15:27 , Processed in 0.562288 second(s), 52 queries .

回顶部