QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

7 d) a& U d0 [ ~, s @- k$ dvoid __fastcall TForm1::FormCreate(TObject *Sender) 0 V) m5 C; v1 Q! g { 3 C0 z! U* N# \: ~6 P+ yCurrentDir=GetCurrentDir(); 1 u6 @5 S- c% `- R: C' m5 iUpdateTreeView(); / _8 C8 k3 F6 p' G+ [ UpdateListView();

. R! T. w, \, B5 l- z

} 5 R0 P: G# V# w1 c//--------------------------------------------------------------------------- * `0 ~ \% y c! W/ C0 M+ S8 O void __fastcall TForm1::UpdateTreeView() 0 m; x9 [$ ^3 B# J# `6 F4 T { ; F! \5 V$ L: ATTreeNode *rNode,*mNode; 3 Z( @5 n6 |% ETreeView1->Items->Clear(); $ }: `' _; o# K' ` rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); $ r0 q; \. [0 i k7 J# C; C7 U rNode->ImageIndex=1; - p( \8 j: c$ h" A+ V5 ^ m! FrNode->SelectedIndex=1; ; A( {0 `) n: c mNode=TreeView1->Items->AddChild(rNode,"A:"); 1 ]% L. Q' {7 F$ W5 YmNode->ImageIndex=2; 1 A6 j$ V2 `7 }5 O9 m mNode->SelectedIndex=2; 4 `9 b! u1 X8 l9 O- x" q+ H; r2 l AddDirectory("A:",mNode); 9 _! Z! n9 B2 K8 e" a for(int i=1;i<DriveComboBox1->Items->Count;i++) $ {% o6 |) G! o I5 k { ( j+ F) }9 t( k) J mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); % l/ n2 z# h; G mNode->ImageIndex=3; : ] r- T% L3 I5 s$ q7 j mNode->SelectedIndex=3; 8 c L! A e+ N2 A `& f+ v1 Q7 H AddDirectory(AnsiString(char('B'+i))+":",mNode); , s: K r7 z6 d" y9 E; ^} 0 ?) ?6 c7 [7 r+ l} ! T0 e, r& D- _1 E5 n//------------------------------------------------------------------------ # P6 b* r( m5 `& n6 q void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) * [7 }9 _0 v1 y5 R4 e{ ) S& [6 A" e' P TSearchRec sr; : H: r5 {+ Z# p* y1 @- O& }" r/ v K TTreeNode *mNode; * t& ?# J4 X2 A+ V8 h9 _6 G if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) ; P8 \" T! {) s: t5 Q9 Q1 z( R' _{ $ j4 K& o* p5 {2 H7 s+ G1 M$ g if(sr.Attr==faDirectory) * }/ ^" t# `! m+ J2 M { " ~8 O$ Y* c6 i if(sr.Name!="."&&sr.Name!="..") 5 \1 ?" {, F! `) ? { ) _5 i# h3 j% U4 s5 n, x- `/ L8 s mNode=TreeView1->Items->AddChild(fNode,sr.Name); ) N' [5 |. c, f, @# T+ X/ WmNode->ImageIndex=0; ! q9 k: ]$ q! H% g mNode->SelectedIndex=4; , X- i+ x' _% n* g2 { // AddDirectory(path+"\\"+sr.Name,mNode); + y! U0 \) T7 z( @1 P! R} 5 C& s4 \* i, x3 S+ I9 ^* [: X } * u6 u S7 O6 M5 e, o8 b} U7 Z k: X0 I8 `3 p- Fwhile(FindNext(sr)==0) : c$ d3 i- R+ v) ?% z{ ; \2 u6 u0 W" fif(sr.Attr==faDirectory) - @ T" l) e3 k9 y{ 8 K, l6 ~9 l X% z: n, ~; B, nif(sr.Name!="."&&sr.Name!="..") ) v5 k( ?' Y. Y4 B5 G, M0 K{ . ~: O% c+ r, a) ?& V+ Q( O: v) y7 j mNode=TreeView1->Items->AddChild(fNode,sr.Name); " i( \8 }* S4 O, O1 d mNode->ImageIndex=0; 1 t- A0 g, F: RmNode->SelectedIndex=4; ' F2 _ \- Q+ X) J// AddDirectory(path+"\\"+sr.Name,mNode); ' r* |8 g: I4 J; {5 `: M8 a } 0 v$ w7 ^" T/ T. v3 o: ~' g" g } . { t. H0 F- e2 ^9 z6 X} 8 k7 u: C% I! \ |FindClose(sr); 8 U* l1 T& @0 U7 T2 m: U! z}

7 d. r# \) N+ b* R

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

9 ~* A; Y6 Z$ _# l( g1 d* S

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, 7 \- N- T8 {' |1 a7 V' }bool &AllowChange) " s M7 F! c+ P{ ! Z! g% O7 b: ^" _ Screen->Cursor=crHourGlass; 2 a' m# R G$ _+ j2 y TSearchRec sr; ! \2 f3 f' ]' D+ d TTreeNode *NodeTmp=Node; 2 F6 @1 z5 Z2 T% x2 a. p: aAnsiString DirName,DirTmp; 0 k( d# K. V' ?5 t# Z& Q DirName=Node->Text; 0 t7 i. U5 p1 g' H7 Z for(int i=Node->Level;i>1;i--) $ z, u7 R" o: `{ : i- N4 ]9 V a% PNodeTmp=NodeTmp->arent; 2 U( L/ n2 ?0 I* b" I; w! E9 l DirTmp=NodeTmp->Text; - B2 ?# L" w% u& k4 B$ U% J, {if(DirTmp.SubString(DirTmp.Length(),1)!="\\") 6 p# ~- q: m9 `) u DirTmp+="\\"; ) @% G( [ z I! n+ P% G0 ?DirName.Insert(DirTmp,0); 4 b- l! h1 y/ d! l; s} % V. _" _4 c# _( ~" q$ O6 h, a4 aif(DirName.SubString(DirName.Length(),1)!="\\") : {7 M* ?4 _# O! ? DirName+="\\"; 3 g m: F5 q7 ~" c+ [for(int j=0;j<Node->Count;j++) ! F+ o n! D d! j{ ; L! G! o% P4 A* ?( d8 R: E0 t, K if(Node->Item[j]->Count==0); 4 m) m) N- ~/ M N0 {- N1 }: m{ # `7 y7 [9 o" u6 g. X6 _2 j% E8 R if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) ) }9 y$ V. N. h& D" q7 P2 ?% p{ 5 b! i" K# P# s6 D do . Q4 v/ J- ~7 P$ ^1 ?{ 3 v4 m; q$ t" Q, a//Node->Item[j]->ImageIndex=5; 3 X2 O8 Y# R1 K2 t //Node->Item[j]->SelectedIndex=4; ( \2 O6 C2 @9 h3 ^" _6 E# U if((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") 7 U! F# _" t$ m. E, t1 B7 f{ . s( C0 l' f- h6 L) _& `Node->Item[j]->ImageIndex=0; ! { Q |! M4 R. LNode->Item[j]->SelectedIndex=4; 6 {4 j. D0 t$ BTreeView1->Items->AddChild(Node->Item[j],sr.Name); # E' l$ S) K- h& s0 F% x3 y } * w6 \& F& D# `4 q8 Y& y } . b } W4 Y0 r, M$ {( ^/ Lwhile (FindNext(sr)==0); , X& r0 [" R' T# e1 X% h2 t8 `FindClose(sr); - t0 d! C$ h$ F# h. b A. I0 @ } a, Y2 q3 v2 w0 }9 l} : D9 e% n* l( l. g- S; |} - _( Z J2 S! ~' U Screen->Cursor=crDefault; 3 o3 x I5 t6 m# e( {1 I& {# K }

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-15 04:34 , Processed in 0.399543 second(s), 52 queries .

回顶部