QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

6 M9 h# T# n' I: v D& h! N void __fastcall TForm1::FormCreate(TObject *Sender) V/ _5 S, v9 w! Q; |8 i4 X$ I4 q5 A V { 4 s6 O0 p+ v. ]8 ]* ^% x$ C1 ACurrentDir=GetCurrentDir(); 7 n* {4 s# y) p# K$ `& f8 tUpdateTreeView(); 4 ]7 v8 K4 j; EUpdateListView();

# P# U! L2 O& `2 r3 F z

} + r/ l/ X" X1 j$ @/ R: X: p8 Z; c //--------------------------------------------------------------------------- v$ G+ D0 d! v void __fastcall TForm1::UpdateTreeView() 9 Z) t/ Z% C9 n& n, u{ 4 Q4 @2 }" P6 O" t; Z% L9 ^5 v TTreeNode *rNode,*mNode; ' _, L9 ?- V# u! Q( M8 L TreeView1->Items->Clear(); ! V$ i* W5 l. J& A8 E' `rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); 1 R2 ~( l- s+ B" H rNode->ImageIndex=1; 0 r( h$ i- W8 x5 ` rNode->SelectedIndex=1; - V& Q, J8 f0 ?' a+ r& y: LmNode=TreeView1->Items->AddChild(rNode,"A:"); 0 O3 Z. Q$ M: ]' q9 f mNode->ImageIndex=2; 7 {7 H) Y( ~$ W7 @3 [7 D5 U0 V mNode->SelectedIndex=2; ( y0 Z6 U. x: p: DAddDirectory("A:",mNode); ' B+ p" p7 l" wfor(int i=1;i<DriveComboBox1->Items->Count;i++) 5 g+ N2 ^; y7 q- V G$ n { % k* k5 h" y" J3 z ~* j, A mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); % Q) e& `2 c+ S$ n3 M1 J mNode->ImageIndex=3; " B$ b, ^4 Z V0 EmNode->SelectedIndex=3; 6 w9 @* Q8 o' f5 rAddDirectory(AnsiString(char('B'+i))+":",mNode); + ~4 [0 ~/ R, z2 h/ O C} 2 o! W+ [ C; h1 z: g } ! i% z1 M4 q. d3 {$ |1 [' h/ L" Z//------------------------------------------------------------------------ . r+ C- \$ E1 r) {: f: G( f void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) ; h4 e ` O" i; w2 N { 7 O2 W6 w& R0 ]" `0 {1 \1 o TSearchRec sr; 6 I8 B* Q- D2 `TTreeNode *mNode; 3 b+ c/ i, v/ }7 x& n' s6 M/ u if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) , J o: h. W! F# k { ) [. W/ x' v4 l) a6 L; s% ^; A if(sr.Attr==faDirectory) - z; G- z0 b1 Q" F! d. F0 Z{ ' u* P( k$ N# \- o if(sr.Name!="."&&sr.Name!="..") ! c5 \: \5 E- p4 h5 Q! N2 M6 d{ + G: y* j$ g9 e5 ?! dmNode=TreeView1->Items->AddChild(fNode,sr.Name); ( J2 b6 e- K! f3 h) qmNode->ImageIndex=0; ; H Q/ X x. s4 U/ ]* CmNode->SelectedIndex=4; ' t) w7 | V# l9 Y& B# P// AddDirectory(path+"\\"+sr.Name,mNode); 9 G, _, F7 ?$ {, S5 j5 l } " b) U) n/ e1 N5 m/ g7 A } 6 S) f' l2 B8 ~+ k; ~0 O7 E8 R' | } 5 z& A, y: q* Twhile(FindNext(sr)==0) ! A, q4 J% {6 x- r. J& y. u$ ~( w0 I { . z% C+ M. M5 V% @5 Dif(sr.Attr==faDirectory) 9 M H3 w% S! a' W' S, \' v{ ' J: ]! p3 O- }/ h4 kif(sr.Name!="."&&sr.Name!="..") $ @1 V% M7 Q `, e) p% E4 u { 4 k# w) ]4 z, O5 m+ o mNode=TreeView1->Items->AddChild(fNode,sr.Name); 8 V) r2 D& l1 j8 wmNode->ImageIndex=0; " r& h- i n, z, J- M+ {# C& A$ ^mNode->SelectedIndex=4; * N! V+ K! t4 ^5 D' j9 H& | // AddDirectory(path+"\\"+sr.Name,mNode); # l# f2 g& I( i4 Z# x, ^' C: ` } 2 a1 r2 Y, ]( @# ~) ~} 6 A) m+ A* k, S- _+ z5 Y} 5 [& P& u/ y2 @" w FindClose(sr); $ F. u0 v, Y, O2 j}

8 J8 ~" a' I& O" X

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

, g7 o4 i3 U& ?) n, L2 v/ x

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, & i, H* k' u0 `& ]: K. xbool &AllowChange) " a: R; N7 v9 T* S% `0 F2 c { % G+ F" P; d: n Screen->Cursor=crHourGlass; 6 R ^/ e% [* ^( o/ }+ @ TSearchRec sr; 6 E5 @* }) |4 i* i3 ?4 ~* R: KTTreeNode *NodeTmp=Node; , w6 @. L# n" z' b, V: m* q5 t; j9 [ AnsiString DirName,DirTmp; 6 H# I! l0 h# aDirName=Node->Text; & Y6 ]0 D% d2 D. B( t7 n& y for(int i=Node->Level;i>1;i--) + W& u" O+ b: y) G. n+ j { 2 ]" D$ O6 }+ u. z( g% INodeTmp=NodeTmp->arent; 4 g) |5 h$ s2 q1 ^& tDirTmp=NodeTmp->Text; 6 _' a. O" K* }. S0 o if(DirTmp.SubString(DirTmp.Length(),1)!="\\") ' Z U9 P" q! e0 ^DirTmp+="\\"; 1 @) T1 C! D J$ q+ h4 g: u% sDirName.Insert(DirTmp,0); - E8 y$ V1 C0 i7 y& T8 _ } * N9 ]7 N( Q9 Aif(DirName.SubString(DirName.Length(),1)!="\\") 7 c! B! k+ U) `( T DirName+="\\"; 4 m) s, ^4 ~- sfor(int j=0;j<Node->Count;j++) # ?1 I% l: h+ b+ T0 Y+ m7 \{ 8 N4 N$ |: w% Z. d3 T5 k+ L# }if(Node->Item[j]->Count==0); 1 y' ~5 e4 m" ~: Z) A { & z( O, c \4 [1 g9 i* \2 Uif (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) $ {4 [# v( }: o! c4 c8 K+ A C{ - O0 z3 f2 k0 `do & m: P9 B- A/ P n { - d/ J# \/ N" R1 ]//Node->Item[j]->ImageIndex=5; ( c- c; v H7 ]; x* V( I, n2 s) p6 Q //Node->Item[j]->SelectedIndex=4; ; H$ M, A$ e& y P if((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") 6 U5 B- X Y8 y{ / v' K: Y( C4 W6 I- v Node->Item[j]->ImageIndex=0; / t. Z; N% H: t8 L" V: q4 lNode->Item[j]->SelectedIndex=4; ! {6 v5 x& S2 L) m' f- Y8 fTreeView1->Items->AddChild(Node->Item[j],sr.Name); : h+ [1 y* f1 P0 B% x } ( l$ B7 |( f+ a. ]; t* Z} ! @/ B N# ]9 k9 B9 }7 z e while (FindNext(sr)==0); . {, j+ Q7 S" r' |% O; ^+ I& e FindClose(sr); . u, b0 h/ B/ D1 B1 U, o} . b6 g$ q. J- X7 v0 u4 ]% { } 0 f2 ` t' u- u& G u } & {0 X0 b- E9 K) g0 O8 EScreen->Cursor=crDefault; % y0 w. a: f$ x/ r# _; W }

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-4-21 06:17 , Processed in 0.434793 second(s), 52 queries .

回顶部