QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

8 N" u, m3 @ O5 W( [void __fastcall TForm1::FormCreate(TObject *Sender) % P6 X w+ Y; T7 t3 z{ : ] b! x6 `! s h/ \" f+ L7 p2 _CurrentDir=GetCurrentDir(); + q& g* H# [3 \, VUpdateTreeView(); 1 ^, x: t; G& R2 m UpdateListView();

, N6 c4 J8 w+ N7 c# j; }# x

} ( W- g3 \. E' ~# d0 n //--------------------------------------------------------------------------- : e1 k4 ~4 W" z7 a$ X: B8 lvoid __fastcall TForm1::UpdateTreeView() " M K+ @% B! Y+ k& @6 x { 3 ^) c6 U8 [" S; O+ Z5 n2 ?# n7 \ TTreeNode *rNode,*mNode; # @7 q( D- q4 k( CTreeView1->Items->Clear(); 5 h& x* b1 M9 t e; p rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); 1 X& B: r3 [! g* o( q9 RrNode->ImageIndex=1; 4 S( S3 `8 E, Q: Q5 KrNode->SelectedIndex=1; ' H1 `& j) R+ a1 S$ TmNode=TreeView1->Items->AddChild(rNode,"A:"); ) N1 @) M6 g1 V7 E9 l) lmNode->ImageIndex=2; * |! I" W$ \1 |. q9 i2 q mNode->SelectedIndex=2; 0 ?) j4 q. j* I7 c; e, X" w: n: h( m+ WAddDirectory("A:",mNode); 2 P3 n8 b7 C/ J) p2 @ for(int i=1;i<DriveComboBox1->Items->Count;i++) - c( B- h" N8 Z. S; B8 `1 ?{ ' y, g+ a: z$ f& U8 F. ^" S mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); ( [/ `' q5 e% G) C' O( M8 D U$ A mNode->ImageIndex=3; 1 y! W/ v+ ]/ r mNode->SelectedIndex=3; & u& M% I7 V5 U/ M2 i- t+ L AddDirectory(AnsiString(char('B'+i))+":",mNode); " y% T# k) x# X0 n} # D$ D$ H7 ]: ]3 r! r" z0 F } + |: _ s4 z0 ^7 [' w( E. b: f //------------------------------------------------------------------------ 5 ^% C( G, d5 \" ?5 a2 m4 A) kvoid TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) ! z& o' v7 G. e# v: z { + s9 b2 E& [. m' {# w, n* U+ e# _ TSearchRec sr; 0 G$ k* r* v6 _3 ]( oTTreeNode *mNode; , e+ Z* J; i$ @if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) 3 ?& _+ v' n+ a7 v1 ~0 S{ & o) R7 u( N# Kif(sr.Attr==faDirectory) 0 \3 a+ o) k9 K! c- L4 R$ J9 @* {8 i { ( ^- L' Q) o& g9 Vif(sr.Name!="."&&sr.Name!="..") $ e8 _4 P0 |5 A* a5 }0 [{ 0 Y3 j) V$ J3 e% H* m; F mNode=TreeView1->Items->AddChild(fNode,sr.Name); " x0 O5 R% ] x/ MmNode->ImageIndex=0; 7 K, y* H! w# P1 V/ F2 v mNode->SelectedIndex=4; 9 G; o4 f: W5 p( u( @+ g _4 @ // AddDirectory(path+"\\"+sr.Name,mNode); 7 x. I1 E2 T" u3 N } 9 x( I# H1 `& @# R6 w- U0 W} & X- f7 x! \+ w6 q+ {* V} ' H2 e+ q8 w1 i8 awhile(FindNext(sr)==0) . F+ k9 P! x9 e+ s9 M8 y { . B. D3 S* R; j! E9 x( R! }! Wif(sr.Attr==faDirectory) 5 _4 u2 |% F5 P2 t8 q { % Y |( ?" ?: o# U% \7 |0 c if(sr.Name!="."&&sr.Name!="..") . @3 f8 v* Q( N- n { 6 m N. S9 t9 |! @# H7 [( v/ xmNode=TreeView1->Items->AddChild(fNode,sr.Name); 5 ~: L# O2 i% D7 X% C" pmNode->ImageIndex=0; # v- W) V8 w% [2 T6 l& dmNode->SelectedIndex=4; / v/ S; q0 n+ e- Q" f% [// AddDirectory(path+"\\"+sr.Name,mNode); 9 `* \8 u7 T5 p8 b# R; n} ) `) \9 _( _% J ^5 O% F+ _} $ A# s! p! H" g( ?" e% Q& a} " q+ u0 {: K* P2 L9 q5 N$ yFindClose(sr); 1 [/ o) I+ M8 p2 @. K p}

9 {1 ~, U6 E& N) Y

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

! I- D8 m+ T7 `& A

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, & g# `# x& d5 ?& n, s bool &AllowChange) 6 o' z3 s t) F; i2 k' q7 H8 _* O, [8 B{ " d2 h* K6 _7 s$ k; o+ WScreen->Cursor=crHourGlass; " q1 l' x0 d- q2 ?- F! eTSearchRec sr; # G, S9 ^2 y$ [7 A) W+ f/ b2 B TTreeNode *NodeTmp=Node; $ l3 i0 n. ^7 p* \5 X6 a AnsiString DirName,DirTmp; # x, L9 ]3 V- R: ^' q! t4 Z" uDirName=Node->Text; : [& H) a' f* x+ J9 i) u k for(int i=Node->Level;i>1;i--) ! {# _" g1 k7 @{ ) I2 ?7 x9 V' m& f8 P) Q2 |NodeTmp=NodeTmp->arent; v* B8 N& {! F" F) D- z" N6 o DirTmp=NodeTmp->Text; : |1 b- l& n/ [9 wif(DirTmp.SubString(DirTmp.Length(),1)!="\\") " @5 Y; l9 V1 x' o$ d5 QDirTmp+="\\"; * i: i1 B6 M# z: V' \4 mDirName.Insert(DirTmp,0); $ j8 c4 |& z6 B/ z} 1 q; B+ N( t' |* R: K if(DirName.SubString(DirName.Length(),1)!="\\") # d. }' P h' XDirName+="\\"; 5 e9 P0 h6 a$ C5 k1 r for(int j=0;j<Node->Count;j++) * A8 z0 ?, h! k. X, a{ : Z* l( Q4 a. ~2 r+ n* d0 p" I if(Node->Item[j]->Count==0); 7 u2 r! s: C/ Z# `{ 6 X2 K2 L( B2 s- k) H8 ?, a# j$ gif (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) / D4 s8 |0 n! \* s{ 2 T5 |+ T* Z# o1 _do 5 K% b$ O, l7 _' D { $ a% X* e5 z5 O //Node->Item[j]->ImageIndex=5; # N q, P( ]1 Y. Q, P/ Y: C! e# o //Node->Item[j]->SelectedIndex=4; 1 Q/ `" W- `8 mif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") 1 C q- t6 j2 t9 i" B- W7 j6 J+ A, V{ 7 ?- i m% y7 W, z+ iNode->Item[j]->ImageIndex=0; 7 p' T# b7 f! a" ~0 i; a" @ Node->Item[j]->SelectedIndex=4; ' ]( D) Q# q" s, r" D; [TreeView1->Items->AddChild(Node->Item[j],sr.Name); D/ i* G! Z8 W' U* {6 V# _' w+ v} 1 t3 X3 x. u0 M4 c7 _9 p. t, h N. n} 6 }2 A, V6 `4 owhile (FindNext(sr)==0); 1 s+ U* F) X/ b0 \7 C' ~8 eFindClose(sr); / A2 q ^& Y+ j& g; z) I5 s3 \} / d4 ?5 T6 W5 T7 w- l } ) o7 C4 i5 u/ M I! f8 I9 P } - h3 a8 J6 S: X& T5 @Screen->Cursor=crDefault; % i- L8 m5 R6 [. j4 c) r# n3 m}

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 13:22 , Processed in 0.503733 second(s), 51 queries .

回顶部