QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

; C- e( Z$ B2 M. B& d/ l6 I2 Kvoid __fastcall TForm1::FormCreate(TObject *Sender) 5 U" e; S+ c; w& a { 6 k8 d3 l7 B- H CurrentDir=GetCurrentDir(); " x8 | D. [: m5 W3 k/ FUpdateTreeView(); ' B, ^3 h; v4 T4 O9 J* vUpdateListView();

4 Z0 K$ p! t! i* r; j8 _' W

} 4 o7 R0 F1 R: N/ X# J0 ? //--------------------------------------------------------------------------- - T/ |0 g1 C* `7 w/ P void __fastcall TForm1::UpdateTreeView() : `8 _' f/ u* s& K& p: n- g0 F6 K{ ( L" U5 `, c9 h8 U: {2 j; l Q+ l TTreeNode *rNode,*mNode; 9 Q+ z4 z9 { b8 \$ bTreeView1->Items->Clear(); ! q/ T6 x% }3 k. X" M& d# K rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); ; S. P4 k& K& v8 KrNode->ImageIndex=1; + \$ X. c2 H, U( `* r2 Z+ GrNode->SelectedIndex=1; , p% X; D2 k0 ]( G1 f, s, \mNode=TreeView1->Items->AddChild(rNode,"A:"); 0 m3 J5 f f3 L8 r2 z4 G mNode->ImageIndex=2; 9 t! i8 s- ?$ pmNode->SelectedIndex=2; ( v( M& _* P# k; H( q: J. d8 V L AddDirectory("A:",mNode); 2 A. w2 _% w8 v* [7 g. r8 i* ?; f& `for(int i=1;i<DriveComboBox1->Items->Count;i++) 5 Z) ]$ N$ t; ?, g C{ $ T0 d. w7 R4 @6 c, n$ e+ w mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); : Q3 x6 ?+ ?5 k6 LmNode->ImageIndex=3; 2 }( o' ~9 Y; z; ]) ~" vmNode->SelectedIndex=3; 8 d$ G( l. w) { AddDirectory(AnsiString(char('B'+i))+":",mNode); 3 T! J' g2 B. `2 q} & p& u2 m4 t/ ?2 N! }} , m1 v0 A* U+ X V2 Y0 e z" s; y//------------------------------------------------------------------------ $ F. o- ]" h9 o: i# C) {void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) 6 k4 d& q: o" z5 ^2 ^% Y { 9 l1 O6 V" g3 W. f: z- c1 [TSearchRec sr; Y2 A6 {/ ^. } g% \$ A ]$ a6 n2 S TTreeNode *mNode; , }. T/ k( Y0 V+ y4 c! \9 ?$ X if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) 9 N( q. B* [8 ? { 1 d" J, _+ k! n# I# x if(sr.Attr==faDirectory) 5 F( p& @' \ i' o7 w { , v1 I/ P' z" z' G$ s, C if(sr.Name!="."&&sr.Name!="..") , J$ R5 E& l$ Q" v# s7 k { D2 \) F7 \4 wmNode=TreeView1->Items->AddChild(fNode,sr.Name); 9 a7 B d N# }- y8 [5 t6 X5 cmNode->ImageIndex=0; & n/ s; F6 w! z1 emNode->SelectedIndex=4; - h$ b* L3 q! u5 G, g, | // AddDirectory(path+"\\"+sr.Name,mNode); ) _& e( g- r- s( v( @0 b y } $ t; b& f3 `2 s" g; K8 Y } 4 g- f- {% l# J! ]/ y% I- W} 5 H' X# P4 c7 Qwhile(FindNext(sr)==0) 4 i# {: v( p1 }0 A6 i{ 6 b f. X9 W8 P2 M/ G if(sr.Attr==faDirectory) 7 A! d4 M& K: d{ . I2 _3 ]* ?( ` if(sr.Name!="."&&sr.Name!="..") , F3 P7 \% J! f4 M) j0 G; F- C{ 9 h( l$ i- p w2 }mNode=TreeView1->Items->AddChild(fNode,sr.Name); : X, V& J; q; _- s6 c' DmNode->ImageIndex=0; ) M; a, H' r2 ImNode->SelectedIndex=4; ( O* m( e5 L, `: h& W- p// AddDirectory(path+"\\"+sr.Name,mNode); & F$ Q6 C6 P. k J( Z5 ^& F} 1 Q0 I+ ~/ v& m( P9 y H} $ x3 c3 _! c% B' j } ; b; O4 N/ X3 s8 B FindClose(sr); + ]9 ~ N2 u' U& C! B3 @2 t}

0 c, L& `. w+ j% F& B9 `1 U8 k

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

3 W4 G: d4 J4 m4 W# ~9 s2 N' b+ g$ y

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, # m) p `9 o3 i' i5 _bool &AllowChange) 2 g9 u v9 A- n1 d$ d( y{ 4 k7 x2 }% J0 I7 ?" Y Screen->Cursor=crHourGlass; 5 O/ v% H0 z, ?# m K TSearchRec sr; ; O) k5 `' V* L* _TTreeNode *NodeTmp=Node; " U8 l" A# W0 W! s1 X% V/ } AnsiString DirName,DirTmp; + \) ], R k, `5 |9 v# D. LDirName=Node->Text; 2 ^+ z! v$ e$ j( }, }for(int i=Node->Level;i>1;i--) + J$ t8 O7 v T: x. A8 ? b5 \ { 2 ]: r, Z6 D) l NodeTmp=NodeTmp->arent; 1 z: D4 q$ Z8 w* D- @DirTmp=NodeTmp->Text; . |/ @# H) L2 R# h/ a9 x if(DirTmp.SubString(DirTmp.Length(),1)!="\\") 2 y5 \, r8 b# {0 @) p* }( rDirTmp+="\\"; 0 O6 f4 i/ D' \2 x! K3 C/ f( v DirName.Insert(DirTmp,0); # |7 O" _: U" B* Y% b' e} ! p$ L) w, P$ R' W. @ if(DirName.SubString(DirName.Length(),1)!="\\") ! w5 m( C- U8 Y. M2 L P2 u DirName+="\\"; k* p0 R1 p p' e( n. afor(int j=0;j<Node->Count;j++) # M3 t8 C& l- M{ , d6 v# d- M4 u$ _4 I( Eif(Node->Item[j]->Count==0); . c/ |6 w4 B) ]- y5 |8 u { / ]% V+ ]: e: @& g7 m2 K$ lif (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) ! ~% ^# d+ Y, F2 q. z1 a{ # r6 X. V5 P! c& y2 s @% m/ P) o" udo - r3 V1 n" A* G# L3 b { 6 D' \# t/ p# |7 S //Node->Item[j]->ImageIndex=5; 7 b' ^5 r3 t" C1 `//Node->Item[j]->SelectedIndex=4; & J* A$ }8 R: p: r6 E% uif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") , p: d! r& t' a5 A8 r { ( [0 k: V7 G" Z$ RNode->Item[j]->ImageIndex=0; 4 N. z! x7 W6 v h& C8 p" Y: n Node->Item[j]->SelectedIndex=4; # x6 u9 H8 j! wTreeView1->Items->AddChild(Node->Item[j],sr.Name); & w3 C6 b! q# D; L/ C" o9 |6 {1 {' l: E} K! X+ \) W% Q} : ~0 K% b( `. ^- Iwhile (FindNext(sr)==0); % j! w9 n; E. P) ~: `. pFindClose(sr); ; a7 B- @) O* X8 N" A* m } + m7 Z% W5 E: v1 [& K} 1 O! y; i f8 _ d } ' q4 U$ y4 F4 l Screen->Cursor=crDefault; $ `/ I# L p) |' a9 b}

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-12 11:33 , Processed in 0.426966 second(s), 51 queries .

回顶部