QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

! ?9 H9 V% [$ Q- |" o void __fastcall TForm1::FormCreate(TObject *Sender) ) ^# |+ }- }- F1 j5 i { 4 a3 d, o- y8 d; W4 S% J9 v- {% hCurrentDir=GetCurrentDir(); : K6 [, _: k: `! q& _+ [& N* @ N UpdateTreeView(); 9 m' P: t, P4 z) [ UpdateListView();

G9 j* e" j0 g# ~# ?: n

} % R) `2 l" U7 p8 {//--------------------------------------------------------------------------- & i. i) F$ p0 ~+ S void __fastcall TForm1::UpdateTreeView() 7 H: a {8 j: n, Y9 u# }{ 6 I" g' I% J1 M! P; i3 q3 b2 d TTreeNode *rNode,*mNode; ( J$ G. ^- K0 n3 s2 L' A: |$ j TreeView1->Items->Clear(); ) D( K; p' H# W4 S/ W) ]& IrNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); 1 F$ Q' |9 Q4 H) x# y rNode->ImageIndex=1; : Y% {' N, ?3 W' CrNode->SelectedIndex=1; 9 [% O, G1 L' @mNode=TreeView1->Items->AddChild(rNode,"A:"); , N6 T& ?3 P9 i+ MmNode->ImageIndex=2; ; L7 ?; n. i; `" ^( I H8 G$ k TmNode->SelectedIndex=2; j& m- ?6 U% H: y/ N8 JAddDirectory("A:",mNode); 3 d8 [8 A) ]6 E/ M! R7 U' f for(int i=1;i<DriveComboBox1->Items->Count;i++) - q' M0 P. @5 O" `& D{ : C' S& Z- i, V- S" y6 {1 z. JmNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); & I( P# R r6 @6 l6 Y/ CmNode->ImageIndex=3; 8 p% h3 |) f! t5 X# G% FmNode->SelectedIndex=3; 3 c$ z. V5 U! T! A2 T8 } AddDirectory(AnsiString(char('B'+i))+":",mNode); - @" ]; M1 F* X; h0 [5 K } ; J: A) a& ?0 r% f- g } : k* ^. M& J% k& r, }1 s3 G+ I //------------------------------------------------------------------------ |% _# G0 p- h/ rvoid TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) * n; \& g3 r% g$ k{ ) O; d) ?0 P% I p! E: ~, U2 JTSearchRec sr; ) R, V8 t$ w+ K5 t6 R& Q7 Q. JTTreeNode *mNode; 0 O% g$ r9 _# Z if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) ( T9 O; q5 V0 S) t7 y \$ O5 v9 j { 5 }9 V3 ?4 p2 {# k3 hif(sr.Attr==faDirectory) % g# |+ D. _( l/ K8 Q/ W{ - r4 Y- j" h* y) N2 C( a3 X if(sr.Name!="."&&sr.Name!="..") - E( S4 w# W8 @! ?% I { ) I6 Y$ x- B& k mNode=TreeView1->Items->AddChild(fNode,sr.Name); % \. D! m7 D$ f4 W3 _5 _mNode->ImageIndex=0; 8 Q L7 d5 k, P* C0 Q$ X mNode->SelectedIndex=4; * Y) M F. x+ f* d // AddDirectory(path+"\\"+sr.Name,mNode); + i4 F5 E5 t0 W6 C) ^! \ } 3 A; m! ^5 k3 x: @, `8 y} " P, ~6 S+ D% N9 Q } ; r) g" K; I3 J* t) E7 Bwhile(FindNext(sr)==0) 0 x+ \7 l: F: `2 q8 @; _" m) U: a{ : p* l' A, r" S2 S- a3 Tif(sr.Attr==faDirectory) & } U7 S$ B O' ]3 m8 R4 o{ 1 K, z5 A. ?4 h. n- [& _9 t if(sr.Name!="."&&sr.Name!="..") . @& A) q. i5 y% _8 @. h{ . g+ r8 O" s$ [4 MmNode=TreeView1->Items->AddChild(fNode,sr.Name); C3 c+ ^9 H" f: U0 TmNode->ImageIndex=0; ; _8 {; v( l O1 R- s mNode->SelectedIndex=4; & s6 M" V; U* ]; b3 I5 I // AddDirectory(path+"\\"+sr.Name,mNode); `( d- k, i+ f; S* f } , O- O3 ^+ `) N9 x' R/ _ } 0 c2 K" Q I- ]; K/ n3 E} % H+ S! j: ]; u2 D( J# ^ FindClose(sr); 5 ~; a# @1 h; d' Y+ x& @3 [4 d }

* P' ?" ^' X" E7 Y$ \! z

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

# O- o. m. `+ h% P/ H) D; V+ s

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, " V$ J$ T2 }) q% {8 l$ [; z! z$ k bool &AllowChange) 2 Y3 V7 e! c- U: E/ J6 d5 z{ 1 P* j2 }8 i( J% XScreen->Cursor=crHourGlass; 5 c. X! a6 `! A) ^$ R: d! P2 b* MTSearchRec sr; : J2 _& ~, D" q/ Z# F6 d8 { \TTreeNode *NodeTmp=Node; : x' L6 v9 J4 eAnsiString DirName,DirTmp; 6 b: @% y; Z) B- P* n. RDirName=Node->Text; ) P- w) l9 L' c, R- ~. Nfor(int i=Node->Level;i>1;i--) 7 ?2 t G5 g; V* C, K4 z: ]{ + m% Z; }, N; s2 [5 n# s- b: c NodeTmp=NodeTmp->arent; 0 j. O! O* O4 U; g9 \, vDirTmp=NodeTmp->Text; 5 v- Y* z H+ [4 H if(DirTmp.SubString(DirTmp.Length(),1)!="\\") 2 i" o5 j! W. d/ b DirTmp+="\\"; ) [5 |2 e4 K$ S& r0 QDirName.Insert(DirTmp,0); 4 y" n% w- E d; z} % g. q V- u9 I6 o X# P" n6 k& r3 Gif(DirName.SubString(DirName.Length(),1)!="\\") ; q. Y2 W8 E* v8 D) E& pDirName+="\\"; 9 n2 X1 K5 u3 J* wfor(int j=0;j<Node->Count;j++) 3 Z" @" h# d/ m- n# q( H; K! L4 ^{ : j3 m ^( k0 q) H3 ^' V% cif(Node->Item[j]->Count==0); . r/ G, _, q& ?4 C" o { 9 {% m9 _& m- b: o1 Dif (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) . A2 i6 @* W( W! i7 Y{ " J+ w: y( j7 R) B do ; e! i U4 O6 a! j% V( u5 L { * ?4 [/ G$ g% C; G" k //Node->Item[j]->ImageIndex=5; " q5 \/ U2 K, X) W9 ^/ X9 d) x//Node->Item[j]->SelectedIndex=4; 6 f4 s5 \$ X1 `' V! e if((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") & t* ?* F& T" N& p7 r; j { g# {7 P# a7 z8 M* l' P& K2 @ Node->Item[j]->ImageIndex=0; 8 ^, I+ L* x5 T1 j4 ]Node->Item[j]->SelectedIndex=4; . n$ D) k, y( g9 ~; x8 U- B TreeView1->Items->AddChild(Node->Item[j],sr.Name); 0 E2 K1 p* l: ~2 e6 O} * m& i% V3 ^1 u" f3 _, Y# u8 Z} * K' `" L k, w7 Q4 I while (FindNext(sr)==0); 6 k% E( R7 ?: S6 r0 u FindClose(sr); & ^& p) }" U$ y4 X} 9 W# b1 I) a7 I- u9 e6 J+ \} 2 i- x" W. D+ y} , Z- S2 C9 h2 [7 y4 E+ I; ] \+ C Screen->Cursor=crDefault; $ E0 t Z' a, t! j- r, d* 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-6-11 18:07 , Processed in 0.438061 second(s), 52 queries .

回顶部