QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

0 ~+ g. j; b! z) L5 M' s$ v1 @2 Kvoid __fastcall TForm1::FormCreate(TObject *Sender) , |1 e/ w2 f$ Z1 t# C6 R0 F{ + e9 B7 s% `! x! ~7 RCurrentDir=GetCurrentDir(); . U. p2 I+ r& C% e- ]% qUpdateTreeView(); & C3 U" z6 _* H% s$ Y2 ^9 ]( s) ^UpdateListView();

+ t1 T, @6 Y, i1 S* V' }( l; S6 C4 e

} 0 E. o& C& `1 R( y//--------------------------------------------------------------------------- - j6 U- \) w* U, L: q9 u! Xvoid __fastcall TForm1::UpdateTreeView() 2 i, M8 A; e3 ~; H6 s9 b7 e2 w6 O{ : X& n! H+ E- s1 }5 h# P5 C TTreeNode *rNode,*mNode; 0 c; u1 j( E ~* s8 aTreeView1->Items->Clear(); ) Y2 C" s! W3 r, Y# grNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); 1 p! m! v( W, ~2 | X5 B& DrNode->ImageIndex=1; ) ]: W( o7 H* f) m rNode->SelectedIndex=1; 1 d B, w6 t/ `8 U4 e! `/ g mNode=TreeView1->Items->AddChild(rNode,"A:"); 4 b3 _8 Q7 t$ Z* I. `/ RmNode->ImageIndex=2; & w. _* x" X9 wmNode->SelectedIndex=2; ! C/ X D& d/ g U AddDirectory("A:",mNode); + M* N9 j' o6 k) k+ Q9 P for(int i=1;i<DriveComboBox1->Items->Count;i++) . e+ H- c! ], Q{ - H7 l) Q# v* G( a: \. a% tmNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); ; H+ k2 ~& p0 D# lmNode->ImageIndex=3; 3 W3 O( N% K; l$ V. K$ l" \mNode->SelectedIndex=3; 2 O6 p* d% K' ^# i- p- K$ }+ d7 I) B* IAddDirectory(AnsiString(char('B'+i))+":",mNode); 8 N' { d9 n# |3 ^ s; o } 0 k( ^4 M* U5 k- ~: b } ) c& a8 y q9 R0 C' }$ S//------------------------------------------------------------------------ 9 Y3 d/ V. @7 K H' j void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) * F \, j9 t# I2 _3 a{ / e% E; \5 E2 aTSearchRec sr; - i g2 _& Z7 u! e2 i# y" I7 eTTreeNode *mNode; $ L, L& w( _) [8 C if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) 1 z' J" k U8 V4 e- P& M- v- ~1 ~{ ' h: c! @- B# h3 \4 w" |! Z# N if(sr.Attr==faDirectory) 9 `. o" p* N6 o! p; b{ . u1 _5 ]: C* R; E$ v, u1 N if(sr.Name!="."&&sr.Name!="..") 5 `$ f9 _" L; v. I% y { 2 l6 y& p$ i& Y mNode=TreeView1->Items->AddChild(fNode,sr.Name); 2 S3 b" ?: M) ]mNode->ImageIndex=0; 9 u1 U( i' o2 @$ T) ~; s/ l mNode->SelectedIndex=4; 7 N: _; f0 p$ `8 g- {& s. \/ z// AddDirectory(path+"\\"+sr.Name,mNode); ' t, L8 q$ _4 h& e0 G8 Q } $ f3 X+ l: {1 a! r" `8 Z$ j } ' n2 ^/ E. A/ {+ P } 1 I7 E( O% }& w, Rwhile(FindNext(sr)==0) ! x( y( H+ r2 D { 1 p, {* `( E5 [if(sr.Attr==faDirectory) , q+ e0 T9 x( z2 R6 ?2 U3 e { & C, G, {( O7 z- Q) F; Xif(sr.Name!="."&&sr.Name!="..") 4 o3 F9 N' B2 j, ~/ e8 Y* p { 3 M2 r% O6 U5 A& U1 }# L& M K mNode=TreeView1->Items->AddChild(fNode,sr.Name); 4 o5 t# E+ B7 I- e( f4 M+ k: N- X6 WmNode->ImageIndex=0; . q6 L# x9 w+ L' _. H) [; pmNode->SelectedIndex=4; 5 C: U; F8 e. X; Z) ?/ Q// AddDirectory(path+"\\"+sr.Name,mNode); & o$ T* Y; l. {7 C. |. Z} , W* b w+ @4 d/ Z l3 o* D } , [0 P ~; y: B9 K/ x } 4 C7 ?+ u7 ]( V5 L& ~ FindClose(sr); - U2 ^. A3 q( A" y0 z}

2 Q" B6 S- D* L% ^) R1 m* v8 A

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

) w1 j3 \3 y; [" ?

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, & {" v- [$ x+ u- N. Zbool &AllowChange) & \# c1 B/ q( y: i- [ { 4 s+ M! v( N! L! ~ J& J Screen->Cursor=crHourGlass; / K" U! R+ r0 w* h: {; W& T8 {6 | TSearchRec sr; 6 F H, ^0 F) [" m8 z% O, Y TTreeNode *NodeTmp=Node; " ?/ S& S! Y5 D1 ^0 U AnsiString DirName,DirTmp; # s5 S) h/ P, H: l1 [. E7 j DirName=Node->Text; ) @6 O! ?& y4 m* r" D1 ~ for(int i=Node->Level;i>1;i--) + W+ v- h7 a* A. b6 |6 z: `{ " S' ?! D/ b: [, G$ a. ~3 f9 e P NodeTmp=NodeTmp->arent; # Z, ^" @ Z& \/ V2 U; t DirTmp=NodeTmp->Text; 8 t1 K! h& i3 \( \6 D3 ]& w) Y. [if(DirTmp.SubString(DirTmp.Length(),1)!="\\") 2 g. B( `( L+ ?6 \DirTmp+="\\"; 8 s% k. K+ i9 n! t4 t; PDirName.Insert(DirTmp,0); H* T9 G+ G @9 m _! u} ! X+ r8 V- a/ C. m+ c& m% _ if(DirName.SubString(DirName.Length(),1)!="\\") * O5 F, \% g! L! Z: C* j' `' H9 i DirName+="\\"; - t- \3 S4 _ m" F% ]: O for(int j=0;j<Node->Count;j++) 0 Q& X. i1 o- ]3 v9 F{ ) `, Q) g+ t8 q' }0 M if(Node->Item[j]->Count==0); : M3 J# f0 M2 r" M { 1 y7 w l: t/ G2 w3 [7 A+ `& @if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) : u2 O! s/ }5 h; ^6 i, V. {# @ { 8 l f; v. A* n, Z4 Ndo 0 Z6 k# |. p9 |{ $ q: m9 F( ^) A6 H" Y* E, P//Node->Item[j]->ImageIndex=5; : [) v2 M/ }5 \- v: K, n //Node->Item[j]->SelectedIndex=4; 1 \+ B& @ \2 v4 f" Vif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") 4 H! o# Z$ P( n$ T{ . w1 n1 ^0 g+ G, `4 a' N, Q3 lNode->Item[j]->ImageIndex=0; ( I5 t+ m' M7 C/ ~1 Y8 f Node->Item[j]->SelectedIndex=4; 7 G% [! V2 u6 C0 J6 S TreeView1->Items->AddChild(Node->Item[j],sr.Name); 1 O% L# F, |5 |+ W; ]( G2 H. l } * E+ y0 |$ p- \ } . L* ]# y' \* B$ U" \5 b. gwhile (FindNext(sr)==0); 2 ]% J$ i' U1 pFindClose(sr); 8 i4 f0 I) n( @# f} $ I- p& R6 v& N" S; \} 1 L2 r9 y, s6 x} " O+ Q7 E9 f# ]1 w- @: T+ F3 s6 x+ |Screen->Cursor=crDefault; 6 ^0 R K& X+ L8 y0 y! l1 K }

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 12:07 , Processed in 0.431345 second(s), 52 queries .

回顶部