QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

$ Q2 k( B+ D) x void __fastcall TForm1::FormCreate(TObject *Sender) $ N1 S- R7 E* \: u{ ; r/ y j- z" nCurrentDir=GetCurrentDir(); ) ^) Z" o( P2 ?7 u UpdateTreeView(); x6 ~/ r) [7 }! K3 jUpdateListView();

/ z0 t2 L3 [/ H2 {- |

} 1 E/ i. G6 N1 E( S: O& i//--------------------------------------------------------------------------- , s1 |. c. _; x2 w5 `7 Avoid __fastcall TForm1::UpdateTreeView() 4 {. i3 k) W, R4 O$ k{ ' u0 [' s" Z4 \+ _! @4 s6 C; TTTreeNode *rNode,*mNode; $ I5 l. F. v1 s0 {' x* A TreeView1->Items->Clear(); 7 L+ L4 G ?& P. m% U3 yrNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); x6 j" N0 ?- w) s8 { rNode->ImageIndex=1; ( M) E( u9 \; h rNode->SelectedIndex=1; 2 C5 B! X/ H) r7 b" G7 ?, fmNode=TreeView1->Items->AddChild(rNode,"A:"); 9 x( Q' |0 C4 D4 u# K; }# _2 b, tmNode->ImageIndex=2; 2 v' W" l3 p4 UmNode->SelectedIndex=2; 5 _7 i5 P# o1 f2 t! N* W AddDirectory("A:",mNode); 2 |- W8 U1 W* U; D9 V for(int i=1;i<DriveComboBox1->Items->Count;i++) 5 [" T* ?7 H; O" n5 ? { 8 G* ^( _7 n7 x4 N7 m' i7 ] I mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); + O6 m/ d" b( g! U mNode->ImageIndex=3; + f3 _2 z W8 y4 Z4 g/ [ mNode->SelectedIndex=3; ' T T: G4 j: @9 x2 j5 j$ h9 OAddDirectory(AnsiString(char('B'+i))+":",mNode); 3 S- G/ h. U/ w; V. H7 `} ( Z4 B' }7 ?( k& X" g( Z} 9 ?, h/ [9 Z5 d/ g //------------------------------------------------------------------------ 1 j! D8 c* x0 Zvoid TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) 1 U5 c7 z+ ~9 I* I3 V' | { - U; g2 ]3 ^* N) `0 d2 W TSearchRec sr; ( A+ i) X7 W7 w( x G3 z6 ^8 v TTreeNode *mNode; ; K8 l) j2 y7 L& h% k- T, fif(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) ! ]2 I" ~9 C8 A# ^* Y% F3 A* y0 O( e { . p% R0 q' c( f; Z0 Oif(sr.Attr==faDirectory) ) I A; K& \3 ?" N7 X7 x3 G{ 4 X5 E% m9 D: N- A; Z* Q4 T7 cif(sr.Name!="."&&sr.Name!="..") ( J. L4 {# d" n8 B7 x{ . d% w3 u- t/ |; hmNode=TreeView1->Items->AddChild(fNode,sr.Name); 9 j1 O+ z9 W) e4 ymNode->ImageIndex=0; 4 s9 E; y9 n% s# e$ R1 {4 `9 A/ k mNode->SelectedIndex=4; + E' g1 G+ e9 V. g+ A+ H// AddDirectory(path+"\\"+sr.Name,mNode); 8 @3 B: Y8 M' P: v$ V6 A# u' ?} / L" V% w0 k; R. | } ! F' [( a f5 w2 i2 S1 m; V* K/ m } ! g# d: o# F+ s" k: k+ p+ E" u while(FindNext(sr)==0) * k& x9 U( j9 ?! Q8 A H { # r, g; q7 n% i: r( \- c- [if(sr.Attr==faDirectory) ; F8 W2 A" D+ C4 v { ; y# k7 `* c4 g: w! ^ if(sr.Name!="."&&sr.Name!="..") 9 G' e/ \1 b& t- ~3 {1 a { " @2 I) \, ^2 `5 o9 ^ f mNode=TreeView1->Items->AddChild(fNode,sr.Name); + u% W9 a) N& z- \) A8 o& O mNode->ImageIndex=0; . F' i! B/ _' p' h/ T! GmNode->SelectedIndex=4; % O. Z6 M8 {$ D0 t) h// AddDirectory(path+"\\"+sr.Name,mNode); $ r) H) `0 {3 p& @} 6 `2 ]$ x: y4 N: H- g} - P# t5 f8 W4 C( C} : s$ l. Z0 I2 T* U$ [8 X- bFindClose(sr); 9 B* n) B [; E5 r+ m( @+ U! n8 ` }

# D6 M' L2 Q. q) Y& r; z9 L

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

+ K ~' g8 O* z

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, ) p0 R) B. _! ?bool &AllowChange) ' b: M, J5 e& M; W6 M3 W{ 0 x& U! `% f. Q2 z4 SScreen->Cursor=crHourGlass; ( D% a. B m3 W$ s' i/ v! _ ]) G TSearchRec sr; * _7 g; T* I% E2 ~5 t: `& DTTreeNode *NodeTmp=Node; 2 r- }' ]3 G# L* }. f, Z2 n AnsiString DirName,DirTmp; 5 P: M- j7 y5 }# U; N+ i3 YDirName=Node->Text; $ V; S; C0 _* v5 S# \" ?# @2 Bfor(int i=Node->Level;i>1;i--) 7 m& H$ v' K1 [; {8 q7 ~{ " ?2 g5 t+ y% x3 K. J2 k NodeTmp=NodeTmp->arent; - U8 t/ _8 G- ?4 VDirTmp=NodeTmp->Text; - U6 E5 ~- q" O3 ]% l if(DirTmp.SubString(DirTmp.Length(),1)!="\\") ! |9 O- i3 G' S$ mDirTmp+="\\"; 8 \% {9 _% L1 n% J DirName.Insert(DirTmp,0); ) B! B6 \ A( p9 L! H } 8 R+ D' ]' {2 mif(DirName.SubString(DirName.Length(),1)!="\\") % v# l, f) h {/ W! |0 X bDirName+="\\"; 6 a4 o* k2 m& T* Jfor(int j=0;j<Node->Count;j++) - S$ o7 p8 D2 W1 i* D { % b9 r5 j& C# K0 {if(Node->Item[j]->Count==0); 0 ~) r5 t; N) o S5 N0 H{ : A, ~9 e2 ~, l7 y. H# t: P; K if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) - W' o2 b- P7 }( s { 1 w2 {3 R1 ~- U" L! {9 ado ( X- L1 }$ k* W' L$ q{ % S+ Z; k, _! H r* A% p+ B# x//Node->Item[j]->ImageIndex=5; $ m5 F, A" k; Y3 n3 p6 j//Node->Item[j]->SelectedIndex=4; $ t3 ^+ [0 j O3 m, Jif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") " L/ d/ z. q- f7 B% @{ ) @( M2 k& S& u- R; E( v# {% [& c5 R Node->Item[j]->ImageIndex=0; 7 G1 P4 E% t* b2 TNode->Item[j]->SelectedIndex=4; 3 G+ B/ A# l5 n+ z+ aTreeView1->Items->AddChild(Node->Item[j],sr.Name); , n1 A3 C6 v$ R; M( n. B} 4 V* I( y, g# N/ q8 q' }: G } ) }! n) [! W$ Kwhile (FindNext(sr)==0); 2 r* d( v* d% o" I$ a+ ?+ jFindClose(sr); o) m8 Q: ]- [: l% B' J: |7 E0 T } 7 a) k- v- p$ K; X( `" f- `, X} 8 L1 w. p( `& g1 M+ H} 1 w$ W. G) f, i0 S3 [ Screen->Cursor=crDefault; . x4 X$ \* k) q( j- w3 l}

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-12 08:40 , Processed in 0.385597 second(s), 53 queries .

回顶部