QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

6 ~% B2 ~% ?: d% H. | void __fastcall TForm1::FormCreate(TObject *Sender) ) ^( T$ A7 Z4 j9 o { 6 g( f0 Y: @4 Q: N0 H/ n+ o CurrentDir=GetCurrentDir(); , U9 ^2 u! g- U6 c. I5 M, w$ nUpdateTreeView(); % u: Q( i& w# r2 {$ S v( Y UpdateListView();

+ O$ _3 K! W; O3 l9 U6 \: a

} 4 R9 F. q h" v8 l6 ]" A //--------------------------------------------------------------------------- " r+ M! k2 L: Z# _" r void __fastcall TForm1::UpdateTreeView() % h( U* H& b, h- T9 t{ 1 r! {6 p4 K' \- }4 a# B: ]TTreeNode *rNode,*mNode; - P \6 ]' J+ m+ k$ F. i3 E3 ]- P( p% h2 O TreeView1->Items->Clear(); + E' ]4 r% f1 e. ]: L2 |: xrNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); / N5 a+ b8 o- z( frNode->ImageIndex=1; ' ]( z& f4 [0 p+ H6 G' y+ C" arNode->SelectedIndex=1; ) a- Q$ Z% ~) n! V) W" Q2 V$ v3 t mNode=TreeView1->Items->AddChild(rNode,"A:"); + N% y ]4 v/ |3 r) ~mNode->ImageIndex=2; ; h% O4 K" x) L# x mNode->SelectedIndex=2; ! p6 c0 ?" b: Z' ? AddDirectory("A:",mNode); ; I% {* M8 T6 v7 q% ` for(int i=1;i<DriveComboBox1->Items->Count;i++) " Y1 A8 j" g1 ^, g { . Z4 \. [, w- f, B3 ? J mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); : T6 a" ]+ }1 c. ~mNode->ImageIndex=3; ) C5 M4 U! D0 M2 @6 A, N! q, \6 A mNode->SelectedIndex=3; - p$ K% r, O1 C$ @ AddDirectory(AnsiString(char('B'+i))+":",mNode); / J$ P: v' t: q& N( q8 V} . o. ~ o1 l8 F0 M$ s} $ F. A" C. D9 I) l0 E //------------------------------------------------------------------------ ( p) ~& z' a' q7 ~( d1 Xvoid TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) 2 O8 _: a! ?* [- I3 o \1 p{ 1 \: S6 D3 y% k0 F TSearchRec sr; 2 C( l% |5 D" T# k# F. rTTreeNode *mNode; 6 j: b: N" S& `8 Iif(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) 6 e" k( z* x' q# s{ 3 I+ ^) z& n, [! g* X3 ~if(sr.Attr==faDirectory) ( Y1 J g0 K8 N" Y: [0 D, Y( a { 8 Y; \8 }; k2 B eif(sr.Name!="."&&sr.Name!="..") ; x- u; t. M7 r% Z { 6 T6 {, Z% ]. ?+ m2 P5 G mNode=TreeView1->Items->AddChild(fNode,sr.Name); " x2 G) D' m( a2 L mNode->ImageIndex=0; , E. a3 y0 h+ ^8 {1 Y mNode->SelectedIndex=4; ! G& H0 Q2 c/ P5 b/ m2 [4 E+ x6 M/ k// AddDirectory(path+"\\"+sr.Name,mNode); {# g w0 g- O( H6 w5 I } ; k! h' k+ O8 N5 c1 c9 V' f) a0 M } * L8 C' F# t! H- l6 m} ) W* J3 [8 C5 ~! `' M/ Hwhile(FindNext(sr)==0) ) c8 h4 b! f* E{ ' y" Y5 @1 ]6 L; gif(sr.Attr==faDirectory) # d0 ?" H& N2 Q{ 5 i F; K. h$ I4 C7 Bif(sr.Name!="."&&sr.Name!="..") , ^* O+ V- l& m8 E7 |3 ]{ $ y$ n m; ]+ H2 [4 y* {2 kmNode=TreeView1->Items->AddChild(fNode,sr.Name); ! o8 k& B/ m3 D5 p2 x$ R mNode->ImageIndex=0; 0 \+ g: Y. I- `3 t/ c1 B U9 vmNode->SelectedIndex=4; - G6 \7 |: Z3 @" h& t // AddDirectory(path+"\\"+sr.Name,mNode); # ^. d b p9 V z7 Y8 O} ) `0 c) }- Q+ b$ Y" p* Z- L. N} ' h0 E" a- M1 y6 v. e/ Z* k } . T; w% \' N$ F) |5 K- Q4 t4 G" qFindClose(sr); 9 X0 b k: c L# L}

; b8 S# o, v- e

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

/ U) Q, p4 @9 Z5 V2 S* [1 B4 B

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, L8 x/ e/ @5 S9 X! V bool &AllowChange) ( i6 ?& F/ k# J$ G' e { 5 X- S4 {6 S( d: `" K7 B+ k Screen->Cursor=crHourGlass; 3 w) N; O1 Z2 cTSearchRec sr; & t$ r1 U( u7 [; Y$ g TTreeNode *NodeTmp=Node; . F0 D/ L, H9 K. g' U! \" z$ U AnsiString DirName,DirTmp; 2 Z# X6 e) Z% d6 \DirName=Node->Text; 9 L6 R" ^ N$ Y2 q `for(int i=Node->Level;i>1;i--) 9 j' _' U6 i* {+ o; g2 y! j' Z{ 7 i. ?) K! g+ @* Z/ G! }, J NodeTmp=NodeTmp->arent; ' l* W5 {& A3 z) u* f* t DirTmp=NodeTmp->Text; + l8 O0 Y4 c {' \3 e- S/ ^if(DirTmp.SubString(DirTmp.Length(),1)!="\\") ; o3 h; C. ~' ^7 Q6 ]7 Z DirTmp+="\\"; 3 B( G: L8 [+ g3 ^0 b. G# Z: j: T8 X DirName.Insert(DirTmp,0); , f8 N4 m+ C3 v, d9 p5 D } ( ]' O( z- P }. q0 A7 D6 gif(DirName.SubString(DirName.Length(),1)!="\\") 2 D5 Z$ x: Z8 q4 K) j3 `; @ DirName+="\\"; `/ p4 ~, B, j- K& q6 o/ P for(int j=0;j<Node->Count;j++) 0 S4 W5 Z: ?' i5 t3 l4 C{ ) V( V0 F, `* A$ B, }2 B if(Node->Item[j]->Count==0); " y$ ?5 [ i$ n9 C# u% j{ 7 {3 v7 S3 ]) O8 Lif (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) & i* L! G" u5 t3 b# M# P { 2 @* |8 u- h3 _8 W5 F' d% f do 7 i: G& V8 ]% K1 l! `: f { 1 p6 r5 h0 S+ e2 q //Node->Item[j]->ImageIndex=5; 4 g& y! E2 R, @" J. k //Node->Item[j]->SelectedIndex=4; 9 B0 }' F4 e! i- ^ Hif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") - j# J2 P5 v7 \( a" f! i { 6 {$ o* Q. `5 o% A% hNode->Item[j]->ImageIndex=0; 5 w" y" C/ W' T: r9 DNode->Item[j]->SelectedIndex=4; m: z$ q( _' U0 J TreeView1->Items->AddChild(Node->Item[j],sr.Name); ( F. Q3 Q5 O, u0 T0 P } & W8 s2 w Z8 M } % \) a0 H9 z! K/ N, e while (FindNext(sr)==0); 6 }3 I4 n( [" |! g' R FindClose(sr); ) z; P3 f9 V' c* P- l3 ]" |5 e} 4 l) D# U9 B3 Q. q# C } ) h, C6 ~% Z* d2 ]1 _} $ w8 ~9 l; U2 y* l; \8 QScreen->Cursor=crDefault; R1 d. i8 m3 A7 a6 o9 _}

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 05:54 , Processed in 0.301884 second(s), 52 queries .

回顶部