QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

" `& M# e( e2 u7 l7 hvoid __fastcall TForm1::FormCreate(TObject *Sender) . D* ]: x5 W8 I& m% v { - o K/ R$ f7 n% J: k7 `0 e" O: ^CurrentDir=GetCurrentDir(); ! w) a" g1 a' O8 }UpdateTreeView(); . j' P# V$ o9 w7 r- Y UpdateListView();

% O' r: Q9 _8 w2 n- i

} 9 v; r9 M- M& d( \, k- q//--------------------------------------------------------------------------- 7 f# ?% i% ?! `. d% `void __fastcall TForm1::UpdateTreeView() ! W( B- ~* H- ~9 F7 y { O7 g$ H/ b N" w) @TTreeNode *rNode,*mNode; * q5 _- K: w4 ~- ATreeView1->Items->Clear(); . ^9 Z8 g1 O% r) x- \5 ^ rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); # d* d% o- l- a, Z9 N5 H7 |; y2 h5 UrNode->ImageIndex=1; ! N0 P, o4 \8 E# V& p% _9 c rNode->SelectedIndex=1; * o; x+ t6 O3 _# j0 I$ n mNode=TreeView1->Items->AddChild(rNode,"A:"); $ R! Y7 D; {% x( a" x mNode->ImageIndex=2; % _/ R: {6 c% Y; ? mNode->SelectedIndex=2; - F- D: b1 l! v8 I* [ AddDirectory("A:",mNode); R% ]; r. F, Y: efor(int i=1;i<DriveComboBox1->Items->Count;i++) " u5 T- b! d) p5 ~" N { $ ~+ d( T u5 ~! a: \8 @+ V mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); y5 i d* G; q- ^, ?mNode->ImageIndex=3; # W0 J. _% i* Z0 j2 D/ lmNode->SelectedIndex=3; & W* f+ S+ O) v4 S- O% w AddDirectory(AnsiString(char('B'+i))+":",mNode); 2 k- A3 t9 O0 T9 e+ c/ e5 X} 9 N2 u7 P8 O3 Z! p' N} & k" l* O+ n6 J% s5 m9 ]//------------------------------------------------------------------------ }, ?- R3 \8 h, L% ]1 }7 mvoid TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) & X- s: y! {6 [( L9 a& F! e& d ?{ ' T) R6 V9 y( C# D9 o: B4 N( ?4 mTSearchRec sr; $ E/ T( _' y2 i7 ITTreeNode *mNode; 7 L' r" t4 [, B; `# A. J if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) 5 @7 Q0 W/ e6 [0 K{ ) P8 r) e2 D: f$ y( G% Fif(sr.Attr==faDirectory) 6 V0 b K3 P4 d8 j8 y4 k3 r- V { 1 ]% E( r @- l& cif(sr.Name!="."&&sr.Name!="..") / R$ k# g( R7 n, l { 4 b! K" i) X; Q) e0 y9 x1 N- d mNode=TreeView1->Items->AddChild(fNode,sr.Name); ) m7 z |4 L5 Z3 g& Q! @, ? mNode->ImageIndex=0; 3 x9 P' w# S- q* n1 e+ VmNode->SelectedIndex=4; - d) ~ |* k% A+ S. e+ O// AddDirectory(path+"\\"+sr.Name,mNode); 0 U1 f1 R8 r9 D" I; u3 U } + T) G6 Z3 v- k! G( [. a } 8 ~2 _) p' x; t3 n3 s/ X } : l z3 b3 L& Lwhile(FindNext(sr)==0) + K& d0 G/ [1 e6 X1 a) K! v { - ]2 g2 ^% c! I, b if(sr.Attr==faDirectory) 5 O4 q' y. a& r{ e0 u9 j' {; _' W- N6 \if(sr.Name!="."&&sr.Name!="..") ( t3 R4 {* B) |{ 6 D) Z$ X% w5 jmNode=TreeView1->Items->AddChild(fNode,sr.Name); + U0 T+ }' p; A# \5 L% s. c% Y% j0 d mNode->ImageIndex=0; % x/ S, x' h# v% O1 G& }( F8 g: `! X mNode->SelectedIndex=4; & p* @# Y B0 K/ `" c5 V // AddDirectory(path+"\\"+sr.Name,mNode); $ q3 O' s1 j6 M, |1 B; g } / ~: i7 X1 s4 O$ j$ u9 a} & u: C* ^, K9 u. o* D, B} : F, h; M& r: I* r# j: Y' r FindClose(sr); $ i6 }0 ~% f! d2 \# j9 ~ }

T/ h$ ~+ {: M0 J% ^6 B' u

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

' n V- o% C) d# D0 y& s. W

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, L- S% d+ u0 M$ V0 g; c bool &AllowChange) ( |4 @! C6 p9 C; i+ B{ : R i' D& u! n& L: L Screen->Cursor=crHourGlass; . C$ h' |) k) K( T( X2 V4 dTSearchRec sr; # _0 t8 p- H, E$ X" X/ D2 v9 OTTreeNode *NodeTmp=Node; % B, P& k1 X4 A9 ~1 a! ~, g3 DAnsiString DirName,DirTmp; & g, b$ p* }1 {, B+ p9 B/ R DirName=Node->Text; - G6 `8 u9 f" L2 X4 ofor(int i=Node->Level;i>1;i--) ; F Y1 f: \6 }! m$ n* P+ F { " E5 L- H5 r- R7 TNodeTmp=NodeTmp->arent; * h( g3 g {1 o& j6 T9 QDirTmp=NodeTmp->Text; 4 L7 j4 Z* W- S. p' N9 b" y4 ` if(DirTmp.SubString(DirTmp.Length(),1)!="\\") 4 m d( l' X6 `4 j8 W* c DirTmp+="\\"; 7 O; V( `4 C% I( {DirName.Insert(DirTmp,0); ) v* h2 i& v7 d} 5 h$ L! X0 Y C3 nif(DirName.SubString(DirName.Length(),1)!="\\") $ L5 m# C3 Q* z4 b7 c DirName+="\\"; " q/ L3 h& e4 j- H6 i( Ofor(int j=0;j<Node->Count;j++) 4 f0 d* [+ ` ^* B c { 0 v- S7 Z! p Wif(Node->Item[j]->Count==0); 6 `/ J; L6 D8 Y/ H" E2 a7 \( _ { 5 H) l% G e3 g3 Z if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) . q2 H- V5 o0 v: o; V' x{ 1 h, Z/ w) Y$ |5 v: ] do 4 t. j/ X7 z% G" q4 ]{ / a* Q! c: o2 w3 `' j//Node->Item[j]->ImageIndex=5; ! ~, G! m! R' @8 J' S) y //Node->Item[j]->SelectedIndex=4; , T# s8 G3 ?# p' f& g! l* u! E2 Oif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") ( r" I) ?1 _5 I. E. p% s6 u6 d% F{ , _9 A: @0 j4 }$ R) Q Node->Item[j]->ImageIndex=0; ) |- H2 j; T: p( S: z, ?1 hNode->Item[j]->SelectedIndex=4; 5 ?' n4 Q) H0 B9 XTreeView1->Items->AddChild(Node->Item[j],sr.Name); 2 M. V" [7 I8 S } ! U0 ]! J9 f( z } + s; m1 b# @0 @9 O while (FindNext(sr)==0); * R+ p# i4 u# w- A! \! G2 H' Z9 ? FindClose(sr); $ J8 m) L& p: @+ _9 l, T } ! L Z( _# ?' c: W& g" [) g/ `# {$ G} + f- z, C0 [3 w} # f$ I% N; G9 w+ G# q9 }Screen->Cursor=crDefault; ' o: s# _3 D3 H. D0 Y3 E }

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-10 22:20 , Processed in 0.481086 second(s), 51 queries .

回顶部