QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

) l9 M. y$ X* L9 d! i: t void __fastcall TForm1::FormCreate(TObject *Sender) 9 A5 ]5 x* j3 C( X+ k7 _0 c; q{ 8 {! k# A& `* ]1 [7 l( B! tCurrentDir=GetCurrentDir(); 8 t" d3 M. y' u% x. G( O UpdateTreeView(); 9 t, N" d3 p; P0 j- W$ @: _UpdateListView();

( m" | D( M y8 E1 Q0 T

} ! b0 O5 M! g6 ^5 Q( q//--------------------------------------------------------------------------- 9 T3 e5 G" D- `- P/ avoid __fastcall TForm1::UpdateTreeView() % j7 _4 `3 P# }: T0 {1 o# e" e{ ; @, e' b* U& n( d) ~TTreeNode *rNode,*mNode; # w4 }# t& N% A* L3 {TreeView1->Items->Clear(); + k( R% P! n# h; p8 R' BrNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); ; E- w- R% |' _+ [. i2 e& ErNode->ImageIndex=1; * q& F% {/ W( V0 C rNode->SelectedIndex=1; / ^5 c4 e" x# j" R mNode=TreeView1->Items->AddChild(rNode,"A:"); ( t9 p. ]. G, z, S/ S8 C' {/ |mNode->ImageIndex=2; + j' t2 C t9 l3 w# m6 V* h mNode->SelectedIndex=2; . h) `7 }1 a# y3 k7 UAddDirectory("A:",mNode); : E4 H e: i) G. | ~ for(int i=1;i<DriveComboBox1->Items->Count;i++) + P3 H6 U- l/ }1 S" E& x: m0 C{ ' P2 P! D$ A, T+ X1 OmNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); 3 s- y4 E% L4 B) \! H; K% v mNode->ImageIndex=3; : M0 X8 u& K; `2 n: d' GmNode->SelectedIndex=3; 0 M! t# ]3 L/ c0 o4 }+ A) V AddDirectory(AnsiString(char('B'+i))+":",mNode); * E) V5 h. a2 G2 N$ W( \} * {' |' S. d. n: ]. I! W- O} ) Q/ x" V+ o$ q; P6 L x //------------------------------------------------------------------------ 1 G1 l* U& \6 Z; w- [ void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) + a# Y" u( u0 X7 a2 u1 P2 Z{ 6 k- L- ]& M, V TSearchRec sr; 3 v0 e) ?/ \! x; p) m, w$ t9 q TTreeNode *mNode; 6 R9 Y# X+ p" R2 _0 }if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) * r8 C1 S) a1 o { 6 Y& H& z( u7 r if(sr.Attr==faDirectory) : @1 L5 W6 l5 ~1 t{ _3 }2 n6 y7 g8 r if(sr.Name!="."&&sr.Name!="..") 9 w7 y) q0 n8 R5 }{ * w, I5 A% K# a7 E/ K% d mNode=TreeView1->Items->AddChild(fNode,sr.Name); ( x4 u+ S* _$ M, x7 _mNode->ImageIndex=0; , C3 J6 q2 i& a2 p, |" N; kmNode->SelectedIndex=4; ; S( j8 n c6 q4 X// AddDirectory(path+"\\"+sr.Name,mNode); 7 M6 Q1 y# x) N' Z } ) m( o2 i1 `# p' b( [} ! S/ r% o; o) P( E" R} 0 C* I) e% D. ewhile(FindNext(sr)==0) 6 u; Z/ ]9 x3 I- d1 r { , `- [! C3 l5 ?0 o. A* {if(sr.Attr==faDirectory) 4 o" I+ }$ @. m' N) ^{ ' q% @/ N4 O7 N* u if(sr.Name!="."&&sr.Name!="..") 0 }, ~7 f/ O# U* K/ Y { 1 x! r6 X: L- gmNode=TreeView1->Items->AddChild(fNode,sr.Name); ' a* {8 G2 x: n- c' ? mNode->ImageIndex=0; " y! E; P2 o, E4 B: F' a# CmNode->SelectedIndex=4; & D! p1 [0 J* s& j // AddDirectory(path+"\\"+sr.Name,mNode); % T8 W& z& M- F: O' S } 0 _. E8 a F, `6 L} 6 J; ]4 d; ~0 m$ Y5 I} ) b! O; c; H4 }/ i1 ?4 L& Y: N0 K FindClose(sr); 0 y3 Y% k3 X8 t1 w& D}

1 U! m6 O. y4 j" H, D9 w) K5 w

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

' v! v7 e9 ~" N" ^+ H- w

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, & I* K! j/ Q+ ~3 M, {6 Y" F bool &AllowChange) 5 X/ q1 C5 V5 _6 D% J) q! g { 2 H# i, B% q6 l; M* e$ q4 YScreen->Cursor=crHourGlass; , B R4 k$ J$ c- g TSearchRec sr; 2 w, t/ L1 w! E( e: @TTreeNode *NodeTmp=Node; 9 A$ E, Y9 \* b) N* u* oAnsiString DirName,DirTmp; 8 L& R$ }3 O1 r! u, h" F# n, S DirName=Node->Text; 9 ~# y# w* ?" L K. F/ ] for(int i=Node->Level;i>1;i--) ' R4 B% @7 j, l" B7 S/ R S{ 6 w& ~3 S2 }+ ^( w/ L2 g% J0 W NodeTmp=NodeTmp->arent; % W7 z& L. j0 Q$ P6 ^4 U7 LDirTmp=NodeTmp->Text; : l8 ?8 h, S$ ]; j( ~! s/ z7 K if(DirTmp.SubString(DirTmp.Length(),1)!="\\") 7 x% `8 z1 l% Q& y9 M0 h0 F5 f DirTmp+="\\"; ; a/ |. v4 |/ W, M6 j& p8 \DirName.Insert(DirTmp,0); 2 L/ N; A0 o3 T" u& v$ L+ m} ; h+ R: ~4 E" N. i# G+ Aif(DirName.SubString(DirName.Length(),1)!="\\") . t v* A9 i5 U& E; u% DDirName+="\\"; : l& T; x( R/ ~% t3 f$ Dfor(int j=0;j<Node->Count;j++) 0 q/ p( G5 o1 T1 m( `9 o: E; K { : q0 z) w6 u2 @4 h# c if(Node->Item[j]->Count==0); ! t/ ]4 m* m- D/ J; i2 @ g{ 9 a) z( I* H) cif (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) % z( O) Y5 u$ F; c5 L" U{ ' L2 Z, U( C. {0 tdo 3 _, i* L4 a0 p; X3 m+ ?* g7 v { / F0 ^! R, C6 `; M Q, N //Node->Item[j]->ImageIndex=5; % O& z5 Y) Z: V5 W3 A }. r//Node->Item[j]->SelectedIndex=4; & _- h, ~1 l6 bif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") ) Y( x& y) k' A8 ^! n { : k5 W0 x8 W- g% {/ o Node->Item[j]->ImageIndex=0; ! I# B& @6 H/ j Node->Item[j]->SelectedIndex=4; & S0 l5 K( \: h$ [" Z. _- V: y TreeView1->Items->AddChild(Node->Item[j],sr.Name); # G3 c- M' i+ q2 O7 S& K- A4 ?9 z" [1 d } % R( h) b* A) u$ G& [4 h+ x } 3 e' V& l( C% ?! U- s while (FindNext(sr)==0); 5 ?2 p! G* r( K2 s1 U8 { FindClose(sr); H7 N) f6 @, [8 ^} " u; E/ I# T% a* C9 T9 I6 I7 y( S} 4 m2 N( o: G1 N8 B' A/ r4 p0 X" V} $ Q, q9 d7 z+ c% z* L. m Screen->Cursor=crDefault; , t5 ?' H( I/ t}

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-18 21:23 , Processed in 0.353410 second(s), 51 queries .

回顶部