QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

' {/ J p: Y' r7 \ C- [ void __fastcall TForm1::FormCreate(TObject *Sender) ' J) T9 R+ `6 S; F7 Q{ 7 S$ K1 L: c; n, W- x1 k( y CurrentDir=GetCurrentDir(); 6 M. o% _' q B" _+ J/ _UpdateTreeView(); ' L" U: h) b ? UpdateListView();

: ~; ]* R1 U# Y4 @ u6 E, A( c

} 9 E5 T g( r e t" S6 T//--------------------------------------------------------------------------- 5 d: x5 \! B) ?* b void __fastcall TForm1::UpdateTreeView() 4 }% n& Y; q" F! S3 K1 W6 v { 9 U6 U2 V" o) `+ `1 x" E( MTTreeNode *rNode,*mNode; 0 S6 X" R! N+ ^) }9 W6 }* L$ vTreeView1->Items->Clear(); a5 `- i3 M, v9 R5 T5 I! b o3 z rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); ; _. c& {; X8 \6 k1 }rNode->ImageIndex=1; @2 D F2 D8 B$ ` rNode->SelectedIndex=1; 1 e# P7 {, o' Q! ^; w& _% e* ^ cmNode=TreeView1->Items->AddChild(rNode,"A:"); $ t% h1 [' M. K! X7 ^0 G mNode->ImageIndex=2; , W- Q$ P9 m# ^" G1 y* Q7 ^: C7 ZmNode->SelectedIndex=2; $ W. c# [: ]6 n& ? AddDirectory("A:",mNode); ! B3 x. z( L* [% d+ c, yfor(int i=1;i<DriveComboBox1->Items->Count;i++) 1 X0 W: L5 N1 n8 H. F- ~ { : y& Z0 \ l- [; {( ^ mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); ) w$ k4 H Y* F3 i* [ mNode->ImageIndex=3; " m# e; u5 ?: i% EmNode->SelectedIndex=3; & `* m1 [4 l1 y& f8 B AddDirectory(AnsiString(char('B'+i))+":",mNode); + G4 r' e" U" |7 }, s) x } 9 w% d; K. v, P, Y$ O9 n% c. v% ?} " C% [+ K! P6 y. ]* b" ^ //------------------------------------------------------------------------ n8 p2 }0 w6 @& `) tvoid TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) 1 ~( c% U2 c4 ^8 s0 N { , b2 `- M5 h4 K, j5 [ s- n: O1 fTSearchRec sr; d2 W$ A, Z; k, }( r! j$ W TTreeNode *mNode; ) A* ?1 n d7 X4 d2 U. n if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) % B( u. U' `* e: n( `- b { 7 Q! M: k5 q2 Y) X$ H9 b if(sr.Attr==faDirectory) 2 ?, ~' c2 v$ l6 E2 W{ 7 a7 N, ]1 P; r7 v( M* Dif(sr.Name!="."&&sr.Name!="..") $ ?* T. K/ v7 v! T7 T) k{ 6 q2 t: T: S6 Y mNode=TreeView1->Items->AddChild(fNode,sr.Name); 9 A+ X G5 s: DmNode->ImageIndex=0; # [( e1 R' A& S0 LmNode->SelectedIndex=4; / B! v7 H; N, Q // AddDirectory(path+"\\"+sr.Name,mNode); " i4 b: }: \* @* c# }3 | a0 p" H} # ?$ e0 R- Z! L2 E' R} ( l- e2 S1 ^1 q! ]# L) r/ U5 J} : i/ _9 Q& L% K' zwhile(FindNext(sr)==0) . V, X+ Y1 O0 O$ ]+ [2 e7 s{ 3 f" ?) w0 O, d if(sr.Attr==faDirectory) 5 O+ t$ g, r% U { ; U6 k- A$ h/ ?9 N if(sr.Name!="."&&sr.Name!="..") 7 n' d W( p( ]0 L3 [/ T* @7 ]{ + V( F+ p0 y3 b: G" rmNode=TreeView1->Items->AddChild(fNode,sr.Name); " ^! W- \( T( n mNode->ImageIndex=0; ( s( B) Q9 D! J( N- v8 kmNode->SelectedIndex=4; 4 U/ ^, \- G8 \1 f4 d1 Q; l) L // AddDirectory(path+"\\"+sr.Name,mNode); 0 J) B' i2 l6 G. L4 ^ } 3 v* i( L2 u! r8 W} $ o6 l% |+ k0 W, `} ! \$ X7 K3 j3 RFindClose(sr); ; n, f" P+ F8 w, q8 T) D- A}

) {, F- u. b( C( {4 d

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

9 L0 o+ d9 Y. L

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, : J, c* a+ {1 h1 `; O# zbool &AllowChange) " J6 ?% W T! z* x$ \{ 3 U9 x: [+ h6 t3 VScreen->Cursor=crHourGlass; 8 f& u3 }2 r6 X TSearchRec sr; 1 Y. F4 C7 G+ c% z3 @- D TTreeNode *NodeTmp=Node; / `2 t% h; N ^( l AnsiString DirName,DirTmp; 9 Q9 ]" g& m- h0 y DirName=Node->Text; # E! _/ \9 m: y: H( f; U! ]3 V+ m3 t for(int i=Node->Level;i>1;i--) / a1 h. c2 ` L" c; b{ 6 Q- F! F0 {' x6 A4 RNodeTmp=NodeTmp->arent; - f5 D* t* K1 U0 |4 ~; ]; I+ vDirTmp=NodeTmp->Text; " g) E! ]7 w* w! k, tif(DirTmp.SubString(DirTmp.Length(),1)!="\\") V: _4 k/ Q# s6 f+ ]. cDirTmp+="\\"; # e& M) k1 a( n+ d3 q) Z DirName.Insert(DirTmp,0); C, w7 g' r6 B/ w) C8 \4 Q} % v5 a" E) B; t1 F. q' B- X& mif(DirName.SubString(DirName.Length(),1)!="\\") 7 A' L" h7 \7 g: U1 N DirName+="\\"; 4 f9 c" P4 w) ^" I/ Afor(int j=0;j<Node->Count;j++) # }( |4 H! Y7 [ { 8 ?, S5 V6 P9 a# W9 ^8 H if(Node->Item[j]->Count==0); + v: D* k2 A! u( p' w) R* { { ( N2 B( ?8 k. s9 D if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) 9 D+ x5 N" C+ j# p5 v+ l! e { 9 \( x7 Y) H. N9 C0 d3 y" q4 H3 U L do , D- `& M3 d7 Z( V* Q { ; f- b5 l+ ]% U, y& ^" V //Node->Item[j]->ImageIndex=5; s/ e! O. W2 r6 s, D) ]3 ~3 g) L //Node->Item[j]->SelectedIndex=4; 5 E; t! k8 u- d: ^* Pif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") . N" B& ~1 ? W8 {% O; l5 y+ a8 x{ . a; E7 C, }# [8 F. Z Node->Item[j]->ImageIndex=0; , t) H% x1 v! [: m. q8 WNode->Item[j]->SelectedIndex=4; s. v8 Y5 h. }. a- c. j, R, \ TreeView1->Items->AddChild(Node->Item[j],sr.Name); ; n/ @6 ^* f$ ^$ G+ S} ) o/ `* h) |) z& S- k% `8 ]7 x} " V# A, V* \( P* y. L: ~' Nwhile (FindNext(sr)==0); ' M8 D% d0 m' E8 [0 t FindClose(sr); 7 t( R( Y* L1 j4 h- x) J9 \ } / h( l& x, N* _ } 2 Y/ ~7 i8 E# [, g$ \( W( j+ W/ ?} ( X# A! y5 m& r; ] Screen->Cursor=crDefault; . X# d" C4 p% x9 P. T& J; ~}

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-10 15:28 , Processed in 0.443122 second(s), 53 queries .

回顶部