QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

. g6 @% f" I/ y1 i0 X z void __fastcall TForm1::FormCreate(TObject *Sender) ' j$ i) Z1 N! ~4 g{ % w( A; ]- r4 [7 n' v7 d CurrentDir=GetCurrentDir(); ' u. g6 {$ g$ w: O P UpdateTreeView(); + E+ e6 p9 b' ^UpdateListView();

3 H* ^+ a$ x+ }0 q

} * o) O. P6 ]' ?- v. [5 u; v //--------------------------------------------------------------------------- ( t/ Q* `8 I+ G9 ~1 w void __fastcall TForm1::UpdateTreeView() 0 y7 b1 i: V5 _! W% ~# `{ + x4 q+ ]. u; q) RTTreeNode *rNode,*mNode; 9 {! ~* T2 O" O" z( { TreeView1->Items->Clear(); 9 J$ O. ~! ]9 I2 Q: trNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); : V' Y, i! |" b4 n, h5 u: n& CrNode->ImageIndex=1; 1 r% j: ]1 z0 k8 N brNode->SelectedIndex=1; 8 ]( O4 V$ u* f4 ^/ `; B* nmNode=TreeView1->Items->AddChild(rNode,"A:"); 0 ?* w! i# W' E2 ?2 MmNode->ImageIndex=2; + l5 O1 L# I0 f3 o# y. m mNode->SelectedIndex=2; * j; {# `9 K$ G: q. R AddDirectory("A:",mNode); ' y, [# B" k G, E5 Q: lfor(int i=1;i<DriveComboBox1->Items->Count;i++) ; x3 o/ m: E% D{ 3 C+ H% }* m9 k5 y DmNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); 1 ^$ d& ? A e; e5 Z* M3 DmNode->ImageIndex=3; 8 t9 F$ u w+ I* p mNode->SelectedIndex=3; & G$ z- l: P' ~1 O8 m) |' B2 u' h AddDirectory(AnsiString(char('B'+i))+":",mNode); ' i: E# s4 ?. b0 u* x! A- t3 j } % A E- g0 \+ I1 [" U, n7 q: o% R } " N/ h3 Z+ E3 ?5 g; f! `" l//------------------------------------------------------------------------ : M- a- ?! [% @. p& U+ g void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) " ^1 H9 w5 ^4 j g9 I{ i6 S& R% |; s/ p' Y. ?, ]& GTSearchRec sr; $ l5 p& A8 ]2 c1 Q+ p TTreeNode *mNode; " g2 L1 e% F/ s& }0 Y- _, D$ Bif(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) % A; V7 e" t, p% z. j# f$ Z { , z: ]' R/ R, }9 G- z. P% j& P% ? if(sr.Attr==faDirectory) 5 c! O' I5 H! F# I* o2 W% q% K{ 2 O' |) G0 H- X8 E if(sr.Name!="."&&sr.Name!="..") " @# p' v+ e2 k& J9 x{ 8 }# h* P6 k" y+ |$ A) y mNode=TreeView1->Items->AddChild(fNode,sr.Name); 2 L; }9 L8 Y* I4 c% Q' K mNode->ImageIndex=0; " F/ H d' x% k- rmNode->SelectedIndex=4; + O; z6 e; p# u# r) L9 T- A* C // AddDirectory(path+"\\"+sr.Name,mNode); 8 e3 K' K! V2 B/ \5 p} 1 T: u. C6 v% P; ]* R; r} * J# W! `% ^% k, I, L) e3 {8 s } $ t$ Z* n$ i5 a4 o% i) \. K while(FindNext(sr)==0) 8 e6 X9 g* H$ [# _+ i { " ^+ B& K5 \# _1 S if(sr.Attr==faDirectory) 4 e4 P! z) G/ V4 j* ?: l: J { # a& J( q8 N+ `+ t- T/ d if(sr.Name!="."&&sr.Name!="..") # ~- n+ U" A- K/ @0 G f{ 4 o& ~" f+ ~% n8 gmNode=TreeView1->Items->AddChild(fNode,sr.Name); ; D/ x4 L3 T, A: ~1 V9 w% L' m mNode->ImageIndex=0; . Y2 K* b1 s! s( SmNode->SelectedIndex=4; & f! y. L( W" x' a' \1 K E // AddDirectory(path+"\\"+sr.Name,mNode); 6 @1 a0 E+ V y( \6 m} $ w; a, e" u' \# B- v! z } 9 L) X& O. T$ }4 R( p } " H: F7 A: u( \" J7 v; {* l FindClose(sr); 8 V e8 P2 y" F% I" {6 ~3 [}

$ h0 t3 I6 I1 r5 r0 ~6 m5 G

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

7 t( b! T; m( ^7 U W

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, 2 s5 C; M. `0 n- P/ |7 H) P" M, U. r bool &AllowChange) 9 o2 K- f' e3 h/ g5 V{ ; f1 T; c( p& Q, w3 |8 Z2 P Screen->Cursor=crHourGlass; $ R* Q& m7 K/ V8 b3 ATSearchRec sr; ' D- }. y+ J" u6 b: K4 q TTreeNode *NodeTmp=Node; 8 J" O/ |; O. ]0 r# Y3 B& hAnsiString DirName,DirTmp; n6 Z6 M7 a0 {4 [ DirName=Node->Text; 1 v6 H( w& |: K4 }; i for(int i=Node->Level;i>1;i--) , h* B, n2 i8 V6 { { V, `/ f9 L4 l+ V ?+ M# ?NodeTmp=NodeTmp->arent; / t* }5 @& E# i7 W; N& QDirTmp=NodeTmp->Text; 1 w, f' @" [6 X( T3 K if(DirTmp.SubString(DirTmp.Length(),1)!="\\") 9 f* P* [5 L9 t6 R. oDirTmp+="\\"; # E0 z% F" d6 u1 _8 J4 ODirName.Insert(DirTmp,0); . G B2 [/ r0 {} - A3 V q7 L4 h7 sif(DirName.SubString(DirName.Length(),1)!="\\") 8 Z/ L. T: ~( f0 Q0 f E: iDirName+="\\"; ! e' |8 Q% K( t* B. Ufor(int j=0;j<Node->Count;j++) 8 ^3 w3 V# r1 }! e' n5 C4 a{ / H/ Y: w# b- b# \if(Node->Item[j]->Count==0); ' ?, [2 p) T# L/ ~! i( c( a: s { ! N! u! A+ M" X% T if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) 4 ?# e" X- K9 n% \; P { G5 U; _1 A" V. v' odo : I }3 i j9 ?2 A3 C1 F8 D { # `6 e/ x, V& Q1 w //Node->Item[j]->ImageIndex=5; 2 |% Y( I# _$ d* J //Node->Item[j]->SelectedIndex=4; " o, {: r/ e( B% ?- vif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") 4 p/ j. Q& e( J2 N { ; K2 P# c: H& P( V* Z$ E2 @. @Node->Item[j]->ImageIndex=0; " u2 @0 v! M% } [: t' k4 A; ONode->Item[j]->SelectedIndex=4; 0 I) P% k6 }9 @" O& W1 ?8 T4 lTreeView1->Items->AddChild(Node->Item[j],sr.Name); 0 _! E* f5 V8 g2 b: j6 D3 ]} - |( G. o' T9 P' W } & [7 X2 ^4 i! w) O while (FindNext(sr)==0); : l5 s: s2 o F/ g# qFindClose(sr); 9 W0 p+ i+ {* e } 7 i2 _6 R( l: }; ~; G2 o} + G. o' t& R# J3 s% G2 L3 E) p} 5 Q( S( F2 Z: A Screen->Cursor=crDefault; & W, O7 Q8 r `5 V* M. B: f}

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-19 18:08 , Processed in 0.331303 second(s), 52 queries .

回顶部