QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

7 O, l, ?! _% p& L4 I) l$ Ivoid __fastcall TForm1::FormCreate(TObject *Sender) 9 T5 A; r& v, s! g _2 }; R{ ; A2 R8 Z' ?+ qCurrentDir=GetCurrentDir(); * N7 W% h; t. r5 u# U UpdateTreeView(); 4 k0 j4 i9 J0 ` C" {UpdateListView();

- V l. C& A2 C

} . x6 S) n: k7 B: `2 M% b9 u$ `//--------------------------------------------------------------------------- " I! J4 d8 H" V+ }3 L4 i Z' z void __fastcall TForm1::UpdateTreeView() ( T2 J* N; }& u0 @% z{ " A$ _, C& H& a' i; y$ wTTreeNode *rNode,*mNode; # M1 s% J, V# WTreeView1->Items->Clear(); 7 Y6 d6 `7 T9 _+ s z4 c rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); ! V) h7 R9 d- T; X3 B0 P rNode->ImageIndex=1; 7 s. y( C! ~' z8 ~ rNode->SelectedIndex=1; 5 G$ T! o/ e/ ~1 s! @# Z- t9 P mNode=TreeView1->Items->AddChild(rNode,"A:"); x, j; p9 n1 A" A& r6 e6 }6 }3 _mNode->ImageIndex=2; $ D% i$ ^0 h3 b ~& E5 K8 h7 ~% FmNode->SelectedIndex=2; . k2 F. I6 ^; ` h; |, [ AddDirectory("A:",mNode); . f; g5 d/ C; J1 L) x$ T1 g3 ofor(int i=1;i<DriveComboBox1->Items->Count;i++) , J: ?) J- {" h{ # w! q v; |7 z# |: rmNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); ( c% y* i# p8 y L' z4 ~' b! RmNode->ImageIndex=3; * S# G0 d: S) J1 n mNode->SelectedIndex=3; ' I) \$ \' g2 d, Q+ ^AddDirectory(AnsiString(char('B'+i))+":",mNode); + ]6 ]% d: d* \ } ) n. u- f# B9 T! m8 G: m} 9 D; S! |# j# }2 v //------------------------------------------------------------------------ 3 f6 d7 ^7 ?4 W4 O( Y$ m4 lvoid TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) & \2 d3 F7 S" a8 ~{ % N, e3 h! x4 e V% H: ~+ I! A2 \TSearchRec sr; 6 L$ L {+ ] N- Q8 JTTreeNode *mNode; 6 p1 Q+ M5 S3 G' Rif(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) 0 Z. x( p8 X3 F { . d: A3 ~: i) P+ B4 K/ @ if(sr.Attr==faDirectory) : n2 P, ^1 I8 s# z { , v" K, }' }/ t+ Jif(sr.Name!="."&&sr.Name!="..") * e8 X0 E) r# ]$ m* k2 N [ { A3 R6 D* n: C4 N s x0 R% jmNode=TreeView1->Items->AddChild(fNode,sr.Name); . x; m, T0 K, ^: @7 UmNode->ImageIndex=0; ! R, j& [8 o, u) _4 Q8 F mNode->SelectedIndex=4; 1 X3 {- E" ]4 f& ^( j+ |// AddDirectory(path+"\\"+sr.Name,mNode); ' |" P/ M" F, k' W} 0 c* L6 }* U0 o$ G* y/ k0 i3 Z} 9 e7 S+ I& E1 K; `1 s- V( T } - r/ B' \6 L: d, ~1 Z( K while(FindNext(sr)==0) , `7 o# K' @3 G$ d& A$ K0 }{ * {2 T9 G. L- F/ y2 E N4 { if(sr.Attr==faDirectory) ( |% c2 V4 a8 ^/ R6 h) ~{ + A6 _! Q, z5 s% wif(sr.Name!="."&&sr.Name!="..") & t1 A* v4 \. Z, {{ ; h9 p2 U. i8 d3 ?- Q7 ?mNode=TreeView1->Items->AddChild(fNode,sr.Name); & \1 a- y8 V4 _4 n; X( ^! Q mNode->ImageIndex=0; 7 O5 c9 B# R# G! L3 c ? mNode->SelectedIndex=4; # g3 O0 n3 M! n// AddDirectory(path+"\\"+sr.Name,mNode); % k8 x9 T9 S2 Q- T3 G} ( z+ z$ m6 Z K} : C2 O8 g ? \- `" t } 0 Z' a7 q L; EFindClose(sr); / U% J; H. L5 ~0 |7 W+ [2 k5 _ }

- x2 v" A) q) J6 t

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

; r$ ]1 C. Z* d( a* L- [6 `

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, % I/ }, O+ W2 Z3 y4 Pbool &AllowChange) 9 T- ?2 F+ j+ O- Y{ 4 R% d! t: f, z4 q& \ Screen->Cursor=crHourGlass; ' _ |5 e" s' f! v5 YTSearchRec sr; 8 J$ m) d- J3 r- C- k/ xTTreeNode *NodeTmp=Node; ! }& K- F& N7 V9 d p) R0 @6 eAnsiString DirName,DirTmp; , W5 Q9 B5 p9 B) A. _7 ]( |1 [1 }DirName=Node->Text; 3 T" q/ V* ?$ G" u5 Kfor(int i=Node->Level;i>1;i--) 6 w: G1 d& H V3 h2 J$ _5 w, p: e; { { & P: W4 Y* P3 m& y5 K* ~ NodeTmp=NodeTmp->arent; ( T( }$ e9 Q% g# p. G/ `2 E DirTmp=NodeTmp->Text; / a4 _$ z" `1 O) `: f, Z, F: j- Nif(DirTmp.SubString(DirTmp.Length(),1)!="\\") 8 s" u8 I9 i* q" L* F4 jDirTmp+="\\"; 6 f z9 x) |5 |# {+ h DirName.Insert(DirTmp,0); . D4 t c" v3 B- M; ~( `5 x } ( @! C8 R7 Y' u0 n0 g5 |0 F if(DirName.SubString(DirName.Length(),1)!="\\") 0 M/ ]; J/ x% Y' o) _: TDirName+="\\"; ! c% }4 y9 k. Y9 A. h3 D for(int j=0;j<Node->Count;j++) 6 K) F) w- Q: L- h' {6 l{ 0 Z; m4 j% ?4 n& oif(Node->Item[j]->Count==0); / |% H; z( m4 X. t& L/ w `3 ~{ " S5 P- y3 R: U5 |) f2 _( aif (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) - N2 e( y2 [" i* ?) R" v; F{ ( @( x6 |! ^. n: g% Qdo # C( A' Y: b t { 9 G6 r; d" _0 T //Node->Item[j]->ImageIndex=5; 0 n, W9 L! @' Z: b3 Z //Node->Item[j]->SelectedIndex=4; 5 o0 o+ n) o1 x7 e, Qif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") * \- }0 z2 _' C- H. [ { # N; [( Q9 s& w8 r) F! HNode->Item[j]->ImageIndex=0; & B" m8 M' n8 n' ~+ V0 ANode->Item[j]->SelectedIndex=4; # Y8 I4 o' \, N' o% I* ~TreeView1->Items->AddChild(Node->Item[j],sr.Name); ' t; {2 _* l* C' j- o1 T. R } / _' K+ {5 D' S } 7 w$ ]. n% M) \. e7 n" S2 [ while (FindNext(sr)==0); 5 q. m- Z% z. z# ?" \FindClose(sr); 7 c! g4 j. i- J6 p. S } # n( U9 v* w3 J* M4 n} - U$ N, S* x/ V s$ ]& D) G9 m} / u4 F. e# `$ f3 x2 n. o1 AScreen->Cursor=crDefault; 2 M8 V, a% C" p8 [ }

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 14:24 , Processed in 0.427222 second(s), 52 queries .

回顶部