QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

% Q9 Q" N# p. K* F1 V6 pvoid __fastcall TForm1::FormCreate(TObject *Sender) 4 P/ K3 _$ z( L { : p& ^/ W# Z \ CurrentDir=GetCurrentDir(); , G" n# C2 q" k3 f" I0 R- U2 E UpdateTreeView(); - N0 l5 b' j. |5 o& |' ZUpdateListView();

9 s+ M: O1 G% {; @6 v' `1 Z+ V

} ' y( Q6 w; ^. t/ P: {//--------------------------------------------------------------------------- 0 a7 f# h" B. Q W: k7 B% T. R. I* Vvoid __fastcall TForm1::UpdateTreeView() ) b3 y" E0 r5 _/ i) M9 ] { ) a# T* }3 j& U; N. u4 RTTreeNode *rNode,*mNode; 9 C [6 s: h' X9 p$ G' s: ~* K& L TreeView1->Items->Clear(); 2 o- Y' s) n) U2 SrNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); 1 X1 v1 \# i& S; ]; u! J rNode->ImageIndex=1; 4 r% a# Y; w) q7 U# J3 n' F# S rNode->SelectedIndex=1; $ s' L/ B9 r& O4 W5 I' w mNode=TreeView1->Items->AddChild(rNode,"A:"); 6 ~# S$ e0 i' p) ~2 R; X2 C, ~ mNode->ImageIndex=2; 0 U. V2 A! `* ]$ s3 k+ u mNode->SelectedIndex=2; 6 D& X3 X! H! N7 lAddDirectory("A:",mNode); + ^: W/ ?9 o6 x for(int i=1;i<DriveComboBox1->Items->Count;i++) + U' X# A# `* ` { 9 |; R! Y/ R, D9 y0 W# X mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); $ i+ j, H8 l7 L9 W& ~ mNode->ImageIndex=3; : A8 F$ K/ X" H* i mNode->SelectedIndex=3; # q& G3 I- o/ i, v g AddDirectory(AnsiString(char('B'+i))+":",mNode); 0 J& E' K( l5 a } ; c2 u' w/ W s' ^+ e- U7 f } 0 O- r7 _$ C' V6 G& n5 M+ A//------------------------------------------------------------------------ ; ~; J7 ?' l' f8 z/ x void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) 2 I# t( E0 D9 i! _8 [; g! p{ * c' |4 {, J* \ TSearchRec sr; ' k/ e' X+ z% R" X `& I; m* E TTreeNode *mNode; 4 v- j& k2 E# X. _ ~3 }$ lif(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) 4 s. l# Q7 ^8 ]6 v: X8 O& n; l8 U { $ T! i5 b1 M3 fif(sr.Attr==faDirectory) 8 M v' _8 j: }" b3 e0 I{ ' f4 \4 i" _4 Q% V if(sr.Name!="."&&sr.Name!="..") 3 l- U5 I/ g/ ~- N{ % m9 V2 }* X5 r* `1 B: @; o' HmNode=TreeView1->Items->AddChild(fNode,sr.Name); ) _; f! N9 L$ o A ]) u8 S( i mNode->ImageIndex=0; ) `7 g! o0 J1 FmNode->SelectedIndex=4; . p- n9 ` T5 b* }8 o3 V" F! w0 f// AddDirectory(path+"\\"+sr.Name,mNode); ) X8 N1 l! g% o0 j% E9 E } 6 {/ q; D1 X/ m4 f* ] } 0 C4 M9 u( f, G} 4 K, Q/ C: c/ s while(FindNext(sr)==0) ' ^6 N2 T3 i0 s" A { 9 w& v( b9 I n. x8 \/ }" Jif(sr.Attr==faDirectory) 9 E Z4 G1 P- }+ b8 A{ ! o$ X; D+ }' y9 K3 h6 Q6 ^& M if(sr.Name!="."&&sr.Name!="..") 5 t% o: ]& v" g4 n: F4 ? { / t: a" F9 Y G5 c9 fmNode=TreeView1->Items->AddChild(fNode,sr.Name); 6 U/ \9 i7 s) p* V& X- g mNode->ImageIndex=0; # N2 B, v6 ]) M5 N ~ mNode->SelectedIndex=4; % c* N2 H9 O6 J+ m3 y( a; d6 R$ Q // AddDirectory(path+"\\"+sr.Name,mNode); ]) C; u% D7 Q; ]: H } 9 |2 t$ t2 v- s* @0 U) O" C! ^} ; w$ P9 c2 K, \4 K! f5 C. ^, K} ) [+ ?' x8 {3 }2 q6 |, `8 n FindClose(sr); ' s1 ]+ L/ m; a8 g8 d}

& D% ~0 B! a; [) d

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

# X* r0 B& u3 \, D9 q# p) c

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, # S- }8 L- I. W( o9 _" i- ubool &AllowChange) - b& x2 v( {7 \{ 3 x* P) k/ g' e2 H8 n" P Screen->Cursor=crHourGlass; ; J" V9 F: K% k! H TSearchRec sr; / |; C- k# j+ }2 B \TTreeNode *NodeTmp=Node; 4 G0 p2 z8 \. C0 D |AnsiString DirName,DirTmp; ; Y" S8 [. a) k0 C6 U DirName=Node->Text; 4 n( s0 O0 \ U) Y* z# Mfor(int i=Node->Level;i>1;i--) / m& \5 |5 W; r. ^# }; ?6 j { . y" U# I6 x$ {& @ NodeTmp=NodeTmp->arent; : v5 Q1 c$ s% w DirTmp=NodeTmp->Text; K* e! H- _ R5 j& K5 J7 Rif(DirTmp.SubString(DirTmp.Length(),1)!="\\") ) q9 F- g- m$ l; UDirTmp+="\\"; ! P3 Y/ S5 l* o$ \/ R) xDirName.Insert(DirTmp,0); " f/ o ~. m$ P" y3 h} 2 ^% H( _( l3 x9 U4 gif(DirName.SubString(DirName.Length(),1)!="\\") ( x6 I6 x+ S7 A2 j3 F2 u6 ^DirName+="\\"; ; j5 I* t5 l5 k" v. dfor(int j=0;j<Node->Count;j++) d; y% D1 B, u% | { 6 C7 o" G0 S/ z+ [+ r. Wif(Node->Item[j]->Count==0); 2 @7 X. n9 @1 Q' Y{ $ n3 ]) G: J4 `+ Sif (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) $ k( n+ E6 G1 \7 m4 B { ; L9 e0 D% ?8 e1 Z- g4 d0 pdo * D# E* v" {) o0 d/ t3 w- Z1 \# S3 f- ?{ 5 x0 a5 C) U7 X( z$ D+ u2 a# ` //Node->Item[j]->ImageIndex=5; ) j1 r! g [" I: Q$ i9 u& H9 M //Node->Item[j]->SelectedIndex=4; ' F' W3 b/ Z. |- v8 z7 b: | if((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") ' W# ?! k9 \" }5 d { . f7 B. G; P* K$ f4 ]4 J4 v4 d; U Node->Item[j]->ImageIndex=0; 8 l0 ^5 j# b5 Y Node->Item[j]->SelectedIndex=4; 2 s1 a+ r5 g- y* P' p; H# V TreeView1->Items->AddChild(Node->Item[j],sr.Name); 8 t: N( q: l0 [5 V' T/ m, ? } / ^3 X& B+ H; g4 b } / x3 V7 k: M' L2 Q t* S4 }2 A1 lwhile (FindNext(sr)==0); ' u8 S: c, N2 u z/ [8 ?. Z5 ^4 Z3 \/ KFindClose(sr); ) z$ @* _8 M; o! D3 ]/ ` } : Y' u( Q& ~0 R: \% n } $ ^4 k7 V. W: R% D: E$ i} - J& s) x: E+ m4 {2 t& s/ g m! g; GScreen->Cursor=crDefault; ! }% I2 B2 F0 u+ f6 w}

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-4-18 10:45 , Processed in 0.400351 second(s), 52 queries .

回顶部