QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

0 C% [" T& E' e5 t6 H" x; yvoid __fastcall TForm1::FormCreate(TObject *Sender) * ^* b1 L! W& g, N- C0 x/ d( a3 f/ Z& g { ' r3 {, u/ M% \2 L \+ H1 [ N, rCurrentDir=GetCurrentDir(); " z; q, { o7 F UpdateTreeView(); & O" ]% f' D: U n0 t7 c$ d% F1 N UpdateListView();

: B) H- e( G$ P( A$ @

} 0 f% T: z- J7 i ? //--------------------------------------------------------------------------- ( C, x5 Q; @( D1 F+ ~ void __fastcall TForm1::UpdateTreeView() " Z$ N6 f5 w9 |4 ]3 f: N: j# g, H9 S { ; c* m8 y ?# i TTreeNode *rNode,*mNode; - Q! v9 f- i+ |/ `- v& tTreeView1->Items->Clear(); . u0 t: ]% q. S: [; t9 f: b- X4 p rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); : Y3 s0 p1 v G; @; K j9 erNode->ImageIndex=1; 8 X4 q8 j& P$ ?: i0 {rNode->SelectedIndex=1; % N2 z8 O+ e4 }( k$ Z1 cmNode=TreeView1->Items->AddChild(rNode,"A:"); 9 u% d+ W( c6 d) i- a mNode->ImageIndex=2; 3 T( B" }5 k1 A) VmNode->SelectedIndex=2; ) O) S$ U9 m4 q- I$ `( r AddDirectory("A:",mNode); ! E1 z8 f4 p* p( L* ` j$ Cfor(int i=1;i<DriveComboBox1->Items->Count;i++) 6 r k/ J4 k7 H9 y: J9 z{ / _# ` J @, C3 u' v; S4 BmNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); $ M( a) L( b3 L7 e# Q mNode->ImageIndex=3; w( K2 M1 Y: J1 V3 a mNode->SelectedIndex=3; / \1 ? M4 V" r f% {6 p# p AddDirectory(AnsiString(char('B'+i))+":",mNode); " n8 A: u; n* C$ H/ c } 0 W) H4 m5 h B3 o} ! N: b' c4 N/ X9 n+ ^ //------------------------------------------------------------------------ 5 i" F s F7 b& Q( a$ C8 F void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) 8 P' E: P( y% G+ ]{ ; m! u& Z0 ^; M( k1 t. u TSearchRec sr; ) x5 u l. V/ y TTreeNode *mNode; & u6 I! V4 h z3 g, oif(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) / k* ^( k( s& {2 _8 M4 K$ E; K{ e1 n2 K% P# E9 x8 ~ if(sr.Attr==faDirectory) - S" r$ g1 h" i" Q3 a. ?: @/ L { 7 r9 u, y# ~+ y3 H3 o% | if(sr.Name!="."&&sr.Name!="..") ; x: Q, M. A2 h { " h8 i% s! Z( s4 ]0 y5 @5 _mNode=TreeView1->Items->AddChild(fNode,sr.Name); 8 j- g( d& M3 q8 @# \& X- HmNode->ImageIndex=0; 1 B7 `$ w+ G6 f; |- b7 [9 v* tmNode->SelectedIndex=4; : f% F3 P( G% p/ ^// AddDirectory(path+"\\"+sr.Name,mNode); ( ?8 z7 W; E4 {: B3 z# }# A } ) T$ h; r/ X% W6 l/ M' N' Z+ v! } } # J: Z, g$ Y3 U} 4 h/ w/ \/ ]; I% F# Vwhile(FindNext(sr)==0) # y& ~- t, @- d9 S5 V { % s: x- {6 O- i, `' ^. u if(sr.Attr==faDirectory) " b3 d8 m4 z/ ?* R4 Y7 ^6 V/ q/ c { 5 u# _5 I! v# C2 L. u" u if(sr.Name!="."&&sr.Name!="..") 9 z' q; n: L2 n { : Y. a" {* r; cmNode=TreeView1->Items->AddChild(fNode,sr.Name); ; R4 z4 }! H3 G1 Y7 g, {$ C mNode->ImageIndex=0; 9 [8 _8 ` y# z mNode->SelectedIndex=4; 8 c' o3 j5 d" Z( k // AddDirectory(path+"\\"+sr.Name,mNode); % }7 F. l6 ~0 B } . U/ x% _4 r9 [6 `! d } # S" N( q' p: |7 L$ y; M2 W } 6 p: P: g" w1 S8 xFindClose(sr); * {! J. o. t& Z- ?. `: `( q}

/ j* |. x; u- i

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

+ F4 p1 x- J9 X+ i

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, - `2 i& d6 T+ d1 z3 r" \5 Q+ v6 Nbool &AllowChange) 0 h4 ?+ L4 W' E) n& l' J- j/ P. z { / N* A% s, t, {5 {Screen->Cursor=crHourGlass; # {) |, l' S- [% O7 ^6 n6 e, d6 h TSearchRec sr; 2 H t& I, `3 D* q2 k I1 STTreeNode *NodeTmp=Node; ) r5 f7 Y5 o% n( ?3 ]7 t AnsiString DirName,DirTmp; * x# M+ q2 ?8 W' G8 a$ h4 A9 Y1 K& C6 uDirName=Node->Text; * N5 v. L" |4 }for(int i=Node->Level;i>1;i--) 1 u5 R/ R7 M$ [2 n/ L{ ' b4 x; l3 a. l( K0 e NodeTmp=NodeTmp->arent; . n$ H7 E" |$ U4 b% x1 z }2 z DirTmp=NodeTmp->Text; 9 v. x$ N# a3 B! O if(DirTmp.SubString(DirTmp.Length(),1)!="\\") # c q% i8 d Z8 n* R DirTmp+="\\"; 8 D0 v- p9 q6 XDirName.Insert(DirTmp,0); @1 s' Z0 U, {+ D- I} ! g( t4 E. p; ~1 z+ V if(DirName.SubString(DirName.Length(),1)!="\\") ; H$ S; X, \' tDirName+="\\"; : w1 A9 A8 @* j R7 ^for(int j=0;j<Node->Count;j++) # ^3 e2 e( S O$ C5 m* I. E{ # Y8 t0 Y* Z7 k. q3 Eif(Node->Item[j]->Count==0); ( q/ S; G$ }# Q, f( D{ / T- c1 J/ a/ W: t! W$ ]if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) * \7 a. U7 |: B" M { + Z& W" w! I5 ^$ sdo 3 }5 {3 t8 }7 N. N" a/ ]{ " f# g" r6 {- Q" s# x& ^( _/ C//Node->Item[j]->ImageIndex=5; ! z0 {0 |% p) T //Node->Item[j]->SelectedIndex=4; $ H7 j( U4 e0 q, [: m if((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") & H% x1 x& r6 p m; d1 k; `{ 1 U: ]5 [3 ^/ j; ?Node->Item[j]->ImageIndex=0; $ J: w* Q' @) n! w" ] Node->Item[j]->SelectedIndex=4; 2 J! B1 S5 W+ LTreeView1->Items->AddChild(Node->Item[j],sr.Name); 8 }7 M/ Y; }% f! r; m } ' N a/ v# \4 K( l, Y} W. i* i c4 G3 i& [) ~1 d while (FindNext(sr)==0); 2 E* Y; z2 ?$ G" qFindClose(sr); s- u7 C; Z) v) V. `+ \9 j} - h& Q& e* S9 ^} 8 \4 `) I9 G) V" K# S/ F4 i! x} - R6 Y* C/ p1 T& CScreen->Cursor=crDefault; 9 b- S5 w- O2 C }

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-13 06:43 , Processed in 0.406892 second(s), 51 queries .

回顶部