QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

+ ?3 T3 _* G( N: L6 ~ void __fastcall TForm1::FormCreate(TObject *Sender) 4 t* l0 V) n0 |" T/ H& }; h' P { 1 @- G- G# E$ i0 m# C, d ECurrentDir=GetCurrentDir(); 9 Y' ?; K0 {! a$ r4 J UpdateTreeView(); ; F5 C0 H2 W h" D UpdateListView();

3 }! }7 X' G% i& [, v: z

} ' j0 i9 r# z4 s% K5 L //--------------------------------------------------------------------------- $ L. n/ J- f1 a Q/ L5 U void __fastcall TForm1::UpdateTreeView() % _3 X2 K( c" y { : U" P; Y. G* U, E TTreeNode *rNode,*mNode; * m# X* D, C3 y% t% KTreeView1->Items->Clear(); 2 M# v1 r* D$ N' v% D' e5 S& q rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); - k6 @' {) D& w( Z1 w( K) _" ZrNode->ImageIndex=1; ; y, Y" X1 i" I6 c8 h' l* trNode->SelectedIndex=1; # j& F, d8 x+ A' E) u# X" ] mNode=TreeView1->Items->AddChild(rNode,"A:"); 8 V& H j# }2 M5 R6 t& b8 G% Z8 U mNode->ImageIndex=2; % p }, s8 R8 h6 k. ? G F" b mNode->SelectedIndex=2; # u- L3 r, i* ^- `+ Y' t AddDirectory("A:",mNode); " k/ ]2 C: L) E w4 ~; n f for(int i=1;i<DriveComboBox1->Items->Count;i++) & [4 O" |" p( W. r4 c { 4 t$ x {0 N2 H mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); ) v9 a5 O ]0 N1 T0 U( a% R! FmNode->ImageIndex=3; ; h6 n) \: z' z) l3 }% Q+ g5 I mNode->SelectedIndex=3; ( }% i9 y2 K u2 L4 wAddDirectory(AnsiString(char('B'+i))+":",mNode); 1 y% ^% X% ?+ f7 g4 O5 ?4 V} 5 X" b# ~2 U8 E} 7 y. e1 n3 R( H6 ?//------------------------------------------------------------------------ ' i3 d8 o1 U$ l `void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) + F2 v2 t9 T' f; R; N7 p( E { $ a! V5 w: ~7 x TSearchRec sr; ' q+ A% k9 j! ?6 R0 N( s; s! R TTreeNode *mNode; 6 Q i$ j5 T3 q, N$ S g6 ` if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) ' r) o- a) \( U+ y% `: V5 V{ # b8 t6 `4 y( B# Oif(sr.Attr==faDirectory) 5 @1 N5 Z+ z! H1 R6 A { 1 @% [% W. K' q* E- ]if(sr.Name!="."&&sr.Name!="..") 1 g( S0 O' [9 K1 B. d3 } ~" v { ' D7 w+ ?2 N/ L7 B( ~: ? a; e mNode=TreeView1->Items->AddChild(fNode,sr.Name); 6 J) q" G0 h [* { mNode->ImageIndex=0; 9 f c6 \) J# ~6 z8 J0 TmNode->SelectedIndex=4; & @! L/ Q }, e+ I1 s! @// AddDirectory(path+"\\"+sr.Name,mNode); 2 l: g% F( c- B7 _ u: ~9 g } : Z) U5 R/ Z( t/ C& g) i. z7 r } ! N% K; o: E" ?# F" j$ V" k } / @9 \9 J* d6 n) w1 k while(FindNext(sr)==0) * H- U7 b6 v- x { 7 ]% E4 S e" iif(sr.Attr==faDirectory) * T ]8 h5 C8 Z) l" ], ~ { 7 \- F' U( E; v2 Fif(sr.Name!="."&&sr.Name!="..") ! e9 }) d: v" L' d4 a& ^ { . w1 i, g; Y- U3 Q" \. [mNode=TreeView1->Items->AddChild(fNode,sr.Name); 8 H4 k! S$ H6 D- [mNode->ImageIndex=0; " f) V2 a# C% d mNode->SelectedIndex=4; # P0 Q; R0 [; N/ |) u // AddDirectory(path+"\\"+sr.Name,mNode); 6 Z) n$ Q: Y' W/ D( B } % N# H4 m. Y0 E7 v} ' J7 E9 x7 y8 t0 ~7 G6 O+ ~ } ! s9 F4 s ]5 D$ V$ t+ DFindClose(sr); % r) |% @. P9 d# v" j( ~3 Q3 `}

( A7 e3 S9 P$ V- I0 W

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

; }+ j/ ~& t# e) Z

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, 1 j0 d! D/ l+ [- ]8 M% g8 G: N$ ` bool &AllowChange) ) {# h; C5 L5 r$ L! `9 [{ 3 E) Q }2 i$ u$ R. E8 K0 G; c Screen->Cursor=crHourGlass; ; g4 T9 a( \* D$ K; R& O# mTSearchRec sr; , g g% R8 M, J+ Q, @TTreeNode *NodeTmp=Node; 9 F8 l. a3 z1 v% S4 u+ Y AnsiString DirName,DirTmp; A* E( @% }, r% mDirName=Node->Text; " a9 j3 ?8 i, _( c/ N9 i& n. wfor(int i=Node->Level;i>1;i--) : x6 u2 \5 J" R8 C* x{ 2 u" P# l8 i& I: l6 S1 V NodeTmp=NodeTmp->arent; ) ?4 W5 E3 ]: x. e/ Q. e4 E% MDirTmp=NodeTmp->Text; / |& S4 I% T" g3 r$ T% _( U' k3 uif(DirTmp.SubString(DirTmp.Length(),1)!="\\") 0 E$ _ Z! h/ a2 t8 VDirTmp+="\\"; 9 ~& L, u6 ?% R0 R4 w; z/ } DirName.Insert(DirTmp,0); j& n1 p$ l6 g! e9 x# k} 4 z& K- j+ O1 t- K- o) X( {- L if(DirName.SubString(DirName.Length(),1)!="\\") 7 `4 w0 S' E! ]( Z+ zDirName+="\\"; ; O: m+ ?4 K+ O' v# z/ S for(int j=0;j<Node->Count;j++) ' N2 N3 ~& |! e* x5 X. e/ M { 4 t, q# Y4 z, Tif(Node->Item[j]->Count==0); . u) \; I2 B' p( T- t{ 1 x+ }6 Q4 v8 v2 A& w! m if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) V! \! T% Z+ v" C. X3 E { 0 e0 l7 A$ l' N O do / L1 a* n% D4 X& q. v! J{ % r) I6 [! {' N: B/ r2 z //Node->Item[j]->ImageIndex=5; 7 v3 \9 e! h6 n) c( X4 F6 Z! S //Node->Item[j]->SelectedIndex=4; ; k) H/ o/ l! }9 W if((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") : W3 `5 U: `5 C* W{ # g4 p# T0 ~! K* |. ?Node->Item[j]->ImageIndex=0; / p! l0 M9 e; ~ Node->Item[j]->SelectedIndex=4; , U- T" G$ [3 `: q: ^ TreeView1->Items->AddChild(Node->Item[j],sr.Name); 7 x; U: F& U& ]' e6 ~! H} ( j) j4 x `8 f} 5 i O) o0 y+ v- B- `7 T+ l* i$ m while (FindNext(sr)==0); / T7 G) _! q/ E N0 }! f FindClose(sr); A- X0 _ T( q} # T8 t$ r, Q( d5 h} 9 e1 f% t' j# F+ l! o, N3 r9 u } ( V \: }# s4 q5 Z; a# G* M& \5 zScreen->Cursor=crDefault; 7 Y) R) H9 U+ f% J}

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, 2024-5-24 01:53 , Processed in 0.261561 second(s), 51 queries .

回顶部