QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

8 J/ U$ ?; G! V9 @- Zvoid __fastcall TForm1::FormCreate(TObject *Sender) |9 A2 n2 h4 k# `5 a { 2 F1 e) g' `/ t! k0 g: M: m CurrentDir=GetCurrentDir(); % U- h" J! N* k+ KUpdateTreeView(); : F8 u) F. ?4 u, L$ k, w/ T: }UpdateListView();

- ?5 t' E8 A3 d# T2 P6 P; [

} 4 t; v/ z& [* ~5 N- ~//--------------------------------------------------------------------------- * V9 D( y |1 m, F3 W void __fastcall TForm1::UpdateTreeView() 1 _" q2 ]) t& ]5 x; k { ( X% s: _9 V m% Q1 c7 V9 ? TTreeNode *rNode,*mNode; / G2 N' W' _, b" o$ n/ @; dTreeView1->Items->Clear(); , l7 D3 Q/ m0 W/ _ rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); 1 L5 P, ]/ ?1 W& {7 z# S rNode->ImageIndex=1; 1 l( h0 e, w5 U2 x8 ZrNode->SelectedIndex=1; - h5 ~8 U4 a( d, a, j mNode=TreeView1->Items->AddChild(rNode,"A:"); 8 l# L! l7 D8 D, HmNode->ImageIndex=2; ! Q A! y! J1 N* u, A& {/ b mNode->SelectedIndex=2; 5 U8 _4 f" l* t* tAddDirectory("A:",mNode); ' \2 A/ ~$ B1 ?, G- L. kfor(int i=1;i<DriveComboBox1->Items->Count;i++) " P* X# u+ P. j$ @; x1 `{ 4 I) J: a. p& H9 k# ~. l' Z& DmNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); 0 X* }, Q4 f- r3 B: G' {2 ~mNode->ImageIndex=3; 4 V+ K1 ~% A" b9 y$ r' ZmNode->SelectedIndex=3; % O' d' \) O, ], lAddDirectory(AnsiString(char('B'+i))+":",mNode); 8 P7 C* e \7 S1 g: x* C) Z} ) n( y) s; O* I8 b5 W, s} / K# G8 [$ `, d) b2 D9 `' m( g//------------------------------------------------------------------------ ; i) X3 v& j3 j0 U& Y- j+ l* S void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) : T4 o. p0 n: G. [ _) d{ - X! @# ]/ B- v( q+ f# U' | TSearchRec sr; 6 W' i: t1 O$ \1 t2 p# _( v TTreeNode *mNode; * ~3 p6 D+ S$ F+ E* ^/ qif(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) + M: z5 x6 d$ K { * S9 F3 _7 k" T% F: |if(sr.Attr==faDirectory) ' [: N4 o1 W U0 K# ]* S { & W ? I1 U' ^) g% C if(sr.Name!="."&&sr.Name!="..") + \1 m$ `$ J1 X% w+ s { * {1 m8 K- A$ h% u6 b; f mNode=TreeView1->Items->AddChild(fNode,sr.Name); / j9 l; _9 A# U2 s* v. JmNode->ImageIndex=0; + s8 \: T b" [) K$ H+ K$ J mNode->SelectedIndex=4; & V# f% `9 M: S5 [6 ] // AddDirectory(path+"\\"+sr.Name,mNode); 7 t1 O* A8 W( ~; ^2 I } * \ k- r, W+ s" c8 ~# ]/ d0 h } # v. V3 ~: F( \( M7 L$ Q } " @# h. _: B2 K$ U4 w6 Z. G while(FindNext(sr)==0) ! Z1 H9 ?' i" G{ 8 }7 ~. C( a7 z& iif(sr.Attr==faDirectory) ' e' d$ ]4 t: F! C. r: N { - y# I( Y X/ a. o% M if(sr.Name!="."&&sr.Name!="..") ; r# K' g# ]4 t! B{ o- D" Q, p6 [8 w n' l' wmNode=TreeView1->Items->AddChild(fNode,sr.Name); ! B+ ?+ V3 L, z4 [6 t+ ]$ p7 Z mNode->ImageIndex=0; , A7 K( c5 G: Y' V# H* NmNode->SelectedIndex=4; 4 m% O! G: ?- A/ s: ? z7 G// AddDirectory(path+"\\"+sr.Name,mNode); ) H6 B! q/ j7 [; u" j7 T+ b+ y0 D. g" {} % ?( a0 F% u4 G* d z3 f6 c} $ E; G7 j- T3 G' i5 c8 \: ]9 b } % J2 _4 q ^8 OFindClose(sr); ) N7 ]- y/ j' Y. _9 [- j9 \& R }

0 Z) d8 {" j' N( X* x

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

% a& S0 v& T) f6 @9 C; Z& c

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, & w; o6 I) T" p, @ bool &AllowChange) 3 c% a0 } _8 u! C1 y$ _ { - { ]+ L2 y& z( b% dScreen->Cursor=crHourGlass; ( X1 `+ G+ U8 e+ y, O TSearchRec sr; ( P" ~2 h1 T- sTTreeNode *NodeTmp=Node; " }) [2 ~. U, E2 e' `# b, m- t; }- PAnsiString DirName,DirTmp; * ]$ A+ Z/ y0 M0 j6 {DirName=Node->Text; % L; u q5 Z% I# q! l" R for(int i=Node->Level;i>1;i--) & i: [6 H3 I7 O. N" z. X/ g{ + J- ~% D, I' ]! \: }# o- n+ B2 tNodeTmp=NodeTmp->arent; # s9 B: j; B$ @' j8 q7 Q+ m DirTmp=NodeTmp->Text; & I- K: O8 L, ~if(DirTmp.SubString(DirTmp.Length(),1)!="\\") & l1 b+ W% \; H6 Q DirTmp+="\\"; 6 M: Q& ]8 c3 {! r/ u1 e DirName.Insert(DirTmp,0); 1 u' ~+ c) s1 ^1 G} & G4 Y G. _7 }' g+ Rif(DirName.SubString(DirName.Length(),1)!="\\") 8 |7 X! q; j# ~7 |/ N* Z, X DirName+="\\"; 7 r- a6 w0 B* k, J l( Z8 i$ k for(int j=0;j<Node->Count;j++) / k- `+ ~# q: v ^2 c* c6 L { , v# x- o& {8 i C if(Node->Item[j]->Count==0); 6 ~! g2 \& P9 n { B$ }: u d6 }* k" Q% y4 }; X if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) * O1 ]2 N/ r4 K( W, f{ ( K7 z' T# E: m; o" `) j( A2 ^8 ` do $ Z. l- z% }0 _2 f4 l2 P4 u$ p{ , ~8 T" E: L" x* D" I0 I //Node->Item[j]->ImageIndex=5; 0 F. b- }% c; ^# z: E. N1 [% `//Node->Item[j]->SelectedIndex=4; ! J) t8 |+ G8 G$ ~ `if((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") 8 S) j4 g" z4 q' M$ D { 2 ]3 M8 B8 X, w' Y; x. m2 B: XNode->Item[j]->ImageIndex=0; % q1 k; f: E: t9 |. i$ w Node->Item[j]->SelectedIndex=4; 0 A( \! K8 ?8 V) v) z; q3 e1 mTreeView1->Items->AddChild(Node->Item[j],sr.Name); - Y( C, t7 Q$ E3 k: I) \ } # f: [/ F f7 h- e" `# Z2 K* v } 5 b( u1 U& o9 D3 k. Iwhile (FindNext(sr)==0); + u9 o9 D5 H s' A8 o9 l9 ~% o6 T6 Z FindClose(sr); % h4 n# X$ Y3 T5 |( F } + ]+ `. Y! F. N" T} * [$ @& l' f7 r. x} " o2 ^+ c M4 o# |: x2 Y9 JScreen->Cursor=crDefault; g& d* c5 Q% y* ?4 `5 n}

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-8-25 00:55 , Processed in 0.737656 second(s), 52 queries .

回顶部