QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

0 a% I& b& u* D: q1 e5 [1 C2 _4 L% qvoid __fastcall TForm1::FormCreate(TObject *Sender) 7 ]% b+ H' H8 u1 G{ 8 w$ n- d5 [8 \ S! H5 k CurrentDir=GetCurrentDir(); 9 K! ^; I5 @) x% d; ZUpdateTreeView(); 3 l$ l( E. X( z8 U7 u, ~UpdateListView();

5 j/ v4 w: E8 ^* F) ~- D6 {( R

} . m) k2 m# I: a, i% V& w+ |: C //--------------------------------------------------------------------------- / l* y) {7 p4 p# C. wvoid __fastcall TForm1::UpdateTreeView() ( {- J K+ \/ [1 {# L" J; N6 a { ! f( ]# {4 \, a- T2 U! H6 @ D V TTreeNode *rNode,*mNode; 8 M5 e/ R$ Y8 m1 ITreeView1->Items->Clear(); 8 v% Q; ]2 _6 R/ V! y# e$ m rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); / ^) X# k7 g4 t" f3 \rNode->ImageIndex=1; 1 `* B0 g5 l7 Q1 v/ i+ f9 MrNode->SelectedIndex=1; 3 c; X9 c% Z/ y) Q6 W2 T* [mNode=TreeView1->Items->AddChild(rNode,"A:"); - r" f! J3 z8 B- B4 }; UmNode->ImageIndex=2; " N# m5 I! h4 c2 a. _, ?" s ~& d' { mNode->SelectedIndex=2; 0 p9 b1 d# [5 |: @8 B' CAddDirectory("A:",mNode); 8 c6 [$ V* V& `0 w for(int i=1;i<DriveComboBox1->Items->Count;i++) 8 _% g! S' R& S8 f: [{ ! W4 _4 g/ ^* u' l- s$ ` mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); 9 ^4 b; G, B1 o. f' x$ }' x) H mNode->ImageIndex=3; : q+ z! K. |1 F! D9 O mNode->SelectedIndex=3; , |9 l5 s, o# h9 SAddDirectory(AnsiString(char('B'+i))+":",mNode); ; W+ |; S( b, W' a } , [/ ]7 n6 [8 G! W& o R} ! K: C2 Y/ @7 S% L! W//------------------------------------------------------------------------ 0 b: m) U! M; G L3 z/ i+ C. @void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) ' e, d6 l% v3 i0 b- v{ " K! R9 |! K7 v, G! [' eTSearchRec sr; . p( l, X2 x8 N0 JTTreeNode *mNode; 8 k% ]. |; l0 Q1 p8 b: J0 h if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) ' t6 q2 U/ R2 K{ ) Z6 J* }$ k+ Q0 w Y! C if(sr.Attr==faDirectory) ) S4 ], R c* F C* q{ 9 t: d, L% D! J H% p) oif(sr.Name!="."&&sr.Name!="..") 5 L k$ f* v& a3 B# g { - |& V# d1 X8 s' _+ N4 j: J/ vmNode=TreeView1->Items->AddChild(fNode,sr.Name); ) A' w, B2 R/ n! Q+ v- q3 vmNode->ImageIndex=0; - M, a4 ]; [& X) l$ X0 DmNode->SelectedIndex=4; % Z0 M4 n: e9 _; [$ a4 b// AddDirectory(path+"\\"+sr.Name,mNode); ; o7 u" H$ W, L8 Y0 f} ! P& _' h U6 f6 J6 `4 Q} 5 E7 A" B0 P& K5 o4 F* m } 4 D, _6 N% L3 |1 q" b+ b6 Y; Q while(FindNext(sr)==0) & O9 {% X, l: \ { $ V( i. s* I5 ] if(sr.Attr==faDirectory) 1 n2 v$ m" K9 K0 ~, M" D{ * R, M, a/ } ~- v, Oif(sr.Name!="."&&sr.Name!="..") 8 r/ c1 f: s& [: x& k/ a( Y7 O- Z{ / b9 s5 _9 Y/ i( l3 o+ F( }' FmNode=TreeView1->Items->AddChild(fNode,sr.Name); , A( \( E+ G- o1 K8 ~$ ^5 y' ? mNode->ImageIndex=0; ( B6 Z \4 I; ]mNode->SelectedIndex=4; " |: ?8 o! n# k9 j4 ]2 D2 v // AddDirectory(path+"\\"+sr.Name,mNode); * j$ U3 T5 X) l ]0 N6 t, ?} $ H; N9 Z) f6 S$ h' z} / V q2 n$ Z6 g/ U} 3 `5 Z9 F" ^$ E FindClose(sr); 9 n6 Q: F; ~7 z# V2 w }

' X+ J. p& y" I

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

+ L- U6 J5 t2 y* T

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, * p/ j$ Q1 r4 @1 |) G6 O bool &AllowChange) ( @7 i* _8 a. `{ + d# _, c! u6 P7 L' D' h8 V. r; gScreen->Cursor=crHourGlass; 2 t! {2 H" |' T( e) gTSearchRec sr; 7 j3 K X/ H9 t' o) V TTreeNode *NodeTmp=Node; + H) y, V: x% [( V5 @2 o0 b AnsiString DirName,DirTmp; 8 r8 |' V/ U u9 R DirName=Node->Text; 7 l" k$ q" `5 s/ q8 N! Yfor(int i=Node->Level;i>1;i--) 9 J1 {! I" R0 ^; }$ ?8 k { ' e7 \, A: M) B; w | F NodeTmp=NodeTmp->arent; , O& f( ~$ s6 B, U$ p4 ?: Q" O DirTmp=NodeTmp->Text; # s# U8 \: {5 i% [7 o' P; C2 Uif(DirTmp.SubString(DirTmp.Length(),1)!="\\") B; A F+ p* l) Y' a I e+ j& R DirTmp+="\\"; 8 W1 m7 b- M/ ` HDirName.Insert(DirTmp,0); 0 k' f0 S, p) K) V/ K} + L5 R+ z5 P' a# D6 j- Z if(DirName.SubString(DirName.Length(),1)!="\\") " m: k9 M+ ^, b t* @$ y- C9 y DirName+="\\"; - N0 ^! Z5 I9 r- S* p$ }for(int j=0;j<Node->Count;j++) , u, d+ u' ]' ] { " J2 g4 ^' d% X$ b& P; v, _2 gif(Node->Item[j]->Count==0); 6 C% D, B7 u: x2 e: ^! T, e { 9 n2 J, v* ]7 { ~. W! \if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) 8 O% B: x o" e2 @+ b' ^{ 2 |6 C, `5 \ f% u' { do 6 X- y: g$ N: w0 b% \3 ^" m{ 9 m/ ~7 X! Q; K( a3 E: N//Node->Item[j]->ImageIndex=5; * @; o' v6 m1 g5 I7 T//Node->Item[j]->SelectedIndex=4; ( {2 R5 o/ s2 e if((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") . L1 N; I b1 e( {& [# b: C { / C& q7 \# w9 B& u; D- HNode->Item[j]->ImageIndex=0; , H5 j p7 e- _ Node->Item[j]->SelectedIndex=4; . H8 P4 L5 j2 u7 l X. s. G% ^ TreeView1->Items->AddChild(Node->Item[j],sr.Name); ' P: |( p% d9 G4 t9 o. w1 q } . s2 r5 ~* L* K% G ~8 W! h } 4 k {, I6 _( J( c; D' _, ]2 ]4 e while (FindNext(sr)==0); ' k8 J/ Z9 O% p2 h W4 Y FindClose(sr); 6 |7 N$ U$ x2 z" S: s } + X0 a: P: z3 \6 w, i g: A% O) d } + v1 h& _8 k$ I7 d4 b% @} , [' h: \4 z* W' F0 h8 hScreen->Cursor=crDefault; : p! a1 o7 E0 }/ \! h9 ^ }

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-10-17 09:04 , Processed in 1.116124 second(s), 52 queries .

回顶部