QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

; P/ Y K6 x" P, l7 E# hvoid __fastcall TForm1::FormCreate(TObject *Sender) 4 V% k$ Y! Y5 k, ^{ + @0 ]% K5 Q6 A, M+ \CurrentDir=GetCurrentDir(); / L% Z! ~$ T" n, b UpdateTreeView(); : O/ K; A0 y- A0 KUpdateListView();

* ?5 D/ V' U7 F# V( V

} " r4 B4 f7 ^$ M% v4 J//--------------------------------------------------------------------------- 8 Y+ H {* `, y6 Jvoid __fastcall TForm1::UpdateTreeView() ) R: Q' P. q- J" z; g! d% T" y1 P" S { % y) M9 V, e" k c' e5 g9 Z/ rTTreeNode *rNode,*mNode; & k1 W! u# z3 [5 Q6 b8 a TreeView1->Items->Clear(); ' _" T' u# }( r. N, ^ rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); s% B- O g& C# p; K& S hrNode->ImageIndex=1; 5 n; L7 L' N. S6 |; q, @ rNode->SelectedIndex=1; ! {- v" p6 n& cmNode=TreeView1->Items->AddChild(rNode,"A:"); ( {: V* N% h- ]; L& J mNode->ImageIndex=2; $ D! X. ]" F4 ?6 \4 y, T, ?3 kmNode->SelectedIndex=2; 5 j+ N- x) d4 `: K9 _/ ^ AddDirectory("A:",mNode); 5 S" N; m6 N. n* X+ V$ m# o3 C- ^for(int i=1;i<DriveComboBox1->Items->Count;i++) 5 H! w5 z# {: ~5 j, { { 0 _% I/ ~6 z. F% @8 S- N mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); * a# u; H5 w, E' ^$ TmNode->ImageIndex=3; 7 B1 \! h& l( c+ x# v3 ^- g( MmNode->SelectedIndex=3; ' c; k5 K" ]+ N( S" EAddDirectory(AnsiString(char('B'+i))+":",mNode); \, i( @; E* [, \} 6 p/ v. K' L3 j } ( m1 T* E# P- U //------------------------------------------------------------------------ 0 r; F7 J( u* E7 ovoid TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) 3 |- i, W7 J6 h$ ?{ ) s9 }9 H) n' u% i, Q TSearchRec sr; + ]7 A% u; t; gTTreeNode *mNode; & ~) i8 T9 w' h4 zif(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) 1 _& A' I5 H( [{ 8 t" c4 t9 P& K6 C if(sr.Attr==faDirectory) % A' l- \ S4 s: X$ F{ 6 I @5 z8 @: J* @( H0 i if(sr.Name!="."&&sr.Name!="..") 0 Z! T5 z8 O1 ~6 h; T{ ; l# Y+ ?% N, T- y2 t; V mNode=TreeView1->Items->AddChild(fNode,sr.Name); 1 W/ v6 B2 O$ ~ OmNode->ImageIndex=0; 8 D/ `; W E; N3 p: rmNode->SelectedIndex=4; 6 A* p& d+ J# n; G9 [. @! [ // AddDirectory(path+"\\"+sr.Name,mNode); 8 T+ q& b/ |9 e+ |( a } ) ?' Z2 D. ]% T} 3 X% c) y/ J; B) h} ; `9 _# ]6 f+ p3 f9 s# m; E- Cwhile(FindNext(sr)==0) , R$ m' |0 L, ]. D5 c+ I { / h2 |! m& P x" G8 U. K- Jif(sr.Attr==faDirectory) , l$ Y5 t7 F2 x5 t9 F& B* u { 4 ]1 d, y' A% x; g if(sr.Name!="."&&sr.Name!="..") . p" P: P: m% Q+ c% P' i' T{ 5 U# B, b& u( K; L mNode=TreeView1->Items->AddChild(fNode,sr.Name); 4 I2 y* x+ i! W8 l* \ mNode->ImageIndex=0; 1 A) u; N- x8 l# W: R' n3 V mNode->SelectedIndex=4; % U0 ~( t4 u; Z% X8 o8 U; n, k// AddDirectory(path+"\\"+sr.Name,mNode); / K% p1 U0 ^# w/ m} . a* `9 Y6 o& I/ e! X @ } ( n+ l9 P; q; X) ?, v; C4 Z} # j8 R5 O- R( c* N; B$ lFindClose(sr); ) g. d( h' \; Q5 e9 R" O0 U5 J }

* ^5 c8 d* j' N- h0 f4 ]

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

8 `8 v2 ?) h6 z7 E8 [2 V# i

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, 6 g+ [; f( k* b8 n bool &AllowChange) 8 X6 z* i! m5 w0 r{ % S, O: H! ?5 M1 X! G7 |6 UScreen->Cursor=crHourGlass; 7 G, _) F+ p4 r" _9 hTSearchRec sr; 0 a; y, ?$ @& I6 x% [TTreeNode *NodeTmp=Node; 5 H) w o% s+ c6 Y AnsiString DirName,DirTmp; 7 q) Y/ u' e. P' a* u DirName=Node->Text; - l7 ^ [0 W- v M4 A7 X for(int i=Node->Level;i>1;i--) 7 W9 B. C- H- s; w. x. K3 U { 2 W" ~6 A5 Y) ]0 d. j1 l- y NodeTmp=NodeTmp->arent; : b0 ?4 u: f4 {: r& s; e% r" `DirTmp=NodeTmp->Text; $ i$ l8 ~ ~& a' C if(DirTmp.SubString(DirTmp.Length(),1)!="\\") - A0 M2 u: s! u/ T8 p) ^ DirTmp+="\\"; x6 H; A, G: b$ T6 q/ S- E3 O( e4 KDirName.Insert(DirTmp,0); 2 x l3 v" R2 Y; c2 W w8 L3 P} + _6 i8 ?: H# j2 Z8 o; a2 ? if(DirName.SubString(DirName.Length(),1)!="\\") 5 |# @: B3 O4 m" w6 P* _7 kDirName+="\\"; ! _) X5 j- X7 a2 c! Q7 Mfor(int j=0;j<Node->Count;j++) 3 |- E/ M/ v3 P$ g { M; t0 U4 z+ K7 _3 O6 |3 \" aif(Node->Item[j]->Count==0); 5 u9 d+ d Y) e9 b$ c k2 c{ ' G3 I! { I2 g! g! m$ b& }7 K& I* S if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) ) t! z9 [+ o. N# g3 _2 X1 I9 a{ - {4 A& i. t5 r7 W* }8 k5 ~ do 9 H5 e% o6 M( ~" Y8 H6 R( v, ~4 a{ * i Z b8 J& H' k //Node->Item[j]->ImageIndex=5; 5 \+ w$ [9 N6 D4 q//Node->Item[j]->SelectedIndex=4; 7 s. g" \8 z/ b5 `7 f( Cif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") ( k- ?" _1 z6 [+ z{ 0 W# O* A* ]/ l$ S Node->Item[j]->ImageIndex=0; ) u7 L3 c9 x8 t# n/ J6 {' }: KNode->Item[j]->SelectedIndex=4; 4 M8 ~, w4 o+ e" g+ @' y9 w& C TreeView1->Items->AddChild(Node->Item[j],sr.Name); 7 W0 I# u! ~% L" R8 f7 T } 5 {. K) Z9 l) F( M" y O" ?} ; }( K* q: X* L0 F while (FindNext(sr)==0); 2 ?7 s( L# |9 e% oFindClose(sr); ' L; e. C2 q- A5 M7 I4 a, Z } ! E- u* k4 x5 ~, Z5 |} ( z# P M- S# f0 ` } . O2 T9 w& V( O/ k$ oScreen->Cursor=crDefault; 2 W! [9 E. L+ ` }

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 16:27 , Processed in 0.434929 second(s), 52 queries .

回顶部