QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

/ x3 T5 |( l, Z/ b5 K void __fastcall TForm1::FormCreate(TObject *Sender) 9 D$ ^* k- U" d, n |( q4 J{ " d' }+ N9 z# }" ~% G! W+ A' y6 K" ~CurrentDir=GetCurrentDir(); 1 b6 K7 g- g/ ] UpdateTreeView(); 7 J. R( @8 S- A3 Y6 J5 \! ZUpdateListView();

- t, C" w& ?( U8 ]# f" m

} : {7 x5 w/ s# ?//--------------------------------------------------------------------------- ( A7 x# i# v/ B5 _/ _% ^- ]* |void __fastcall TForm1::UpdateTreeView() 7 [# m( Q/ `/ [; d{ & v1 f2 o7 c4 F7 A8 U5 E6 M' @TTreeNode *rNode,*mNode; 6 o: u' Y1 d6 ]2 y0 a4 |TreeView1->Items->Clear(); $ v( @) y; o/ M* @2 f$ l0 b7 O rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); * [5 l$ d2 P0 v$ ZrNode->ImageIndex=1; ! T# P( n; l; h# C' ?6 Z rNode->SelectedIndex=1; 0 M9 b6 m3 W2 |/ m2 R, e mNode=TreeView1->Items->AddChild(rNode,"A:"); & s( j( a# Q$ T9 B, W% o0 N4 dmNode->ImageIndex=2; : Y$ ~9 y$ ]' Z+ @* `/ R8 NmNode->SelectedIndex=2; + J5 o$ z4 h. Y6 \0 n+ [AddDirectory("A:",mNode); * |5 d& _. i: h8 g, ~3 f8 N for(int i=1;i<DriveComboBox1->Items->Count;i++) " } a0 K/ z- R- x2 G. Q{ o3 D! ?" G* y0 R& Q4 E/ MmNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); . H. I# Q4 W+ `0 h0 lmNode->ImageIndex=3; 3 ~3 g/ R1 X9 J- l mNode->SelectedIndex=3; : X; E1 W, W( J5 D, g( Q( a" R. s5 w AddDirectory(AnsiString(char('B'+i))+":",mNode); ) e) ^& n ]* ^} * ~, `$ C2 C# J: [* {) I9 B6 y% c } ' m2 }4 q2 E+ Q5 c% Q+ F2 h* _ //------------------------------------------------------------------------ $ @% P) b: \- s# u void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) 1 G% [8 S5 p- A+ ? { & L1 i+ E' @+ f% P TSearchRec sr; . j% y$ W) [# m. ]% H2 L1 W7 DTTreeNode *mNode; B* X0 o) O- x: @6 F& {5 I if(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) & d# e! _# T6 J# r { 0 {3 W1 t, j( jif(sr.Attr==faDirectory) % z( F7 j2 q4 r/ h- h2 i$ E' K9 m{ 5 W. W9 u I. ^' O* t( A% h9 Z9 oif(sr.Name!="."&&sr.Name!="..") $ I% R( a% H1 c5 a/ G { 2 Z: l, o! _: v- W- s% n mNode=TreeView1->Items->AddChild(fNode,sr.Name); }) ^" k- {0 j0 K# _mNode->ImageIndex=0; + X4 o" x" {) R$ z5 ` mNode->SelectedIndex=4; 9 X" e- n" R4 h }# O1 T( ?// AddDirectory(path+"\\"+sr.Name,mNode); # M3 s& s8 E6 @} ! t* }. O' |) ]3 G; K } 8 d, u; d! |; F7 N7 x7 x s } ; N- B( c4 H& G5 Zwhile(FindNext(sr)==0) + I4 }. l- @9 p3 `3 l8 K{ # R8 |8 o: V( |" t0 y% \) [if(sr.Attr==faDirectory) : }% N. d+ c5 k0 T( G, M{ 6 d( ~+ i8 N* Q: F9 sif(sr.Name!="."&&sr.Name!="..") 7 i3 O6 H3 ]: @% g{ 3 i# ?# `( R8 X/ I& F& ?# F, NmNode=TreeView1->Items->AddChild(fNode,sr.Name); : @) V9 T% a$ |! |3 g0 l, [" b mNode->ImageIndex=0; 3 F; e$ j3 i& f* R) n: T; RmNode->SelectedIndex=4; & A) j5 E# T. V// AddDirectory(path+"\\"+sr.Name,mNode); - `+ k6 _: L- j4 k- k} * d; ]9 c' k% T! J& u } . E/ n% u3 N. C3 J1 B; x, I} " X9 Y% Q' k- Z# \4 {2 b% z$ N FindClose(sr); ( F6 Y; ^2 j. G9 D }

# b- s; J" Q$ ^; H( P! V

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

+ Z! j' V) f" b; |9 h

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, 6 P' M O, w6 x- Q& I5 sbool &AllowChange) 0 @+ Y6 X1 h; b8 i9 O) s% w { % H5 u" x0 X" U- b* P+ {; P Screen->Cursor=crHourGlass; , S6 t( O* c1 E4 p TSearchRec sr; " R4 k& O2 q3 h, ~% ~& eTTreeNode *NodeTmp=Node; 3 O; O. W/ [. [5 O" l) w1 u. R- v AnsiString DirName,DirTmp; ' i& G9 U7 F. I* I$ F2 E0 v4 h/ |3 D1 u- s DirName=Node->Text; $ s. C- ~( @5 p; n% {0 C* P( A. o/ i for(int i=Node->Level;i>1;i--) : P9 Y6 Z. m, x1 E0 a! Q{ $ s+ n& l- \* G( \% X NodeTmp=NodeTmp->arent; 1 S0 i; j) a7 P: F, |* T7 dDirTmp=NodeTmp->Text; 0 x" } K" L7 [8 n: v( ] if(DirTmp.SubString(DirTmp.Length(),1)!="\\") % t* s* L. U; V l" k: vDirTmp+="\\"; # _% ^8 X, }4 ^" u# f/ Q9 gDirName.Insert(DirTmp,0); * Q. C+ ~/ Z, D7 b7 e/ F& A } ' ^" k5 Q9 h1 p v2 n5 P$ b( q! p if(DirName.SubString(DirName.Length(),1)!="\\") . K( [' A0 D' W- x- h DirName+="\\"; 9 X3 k$ _* b& f for(int j=0;j<Node->Count;j++) W" a! w3 X5 \3 A. B2 P4 e{ 3 A q' q+ i8 i& O7 S0 Pif(Node->Item[j]->Count==0); " r: f; N( B" w2 m5 n { & O' D' Y$ @7 [+ P; r! aif (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) 2 |/ T) _& b6 p3 {& w5 r) N& } { 2 O2 G/ [4 y s do . Y [8 g" e- R2 O: w{ % p! Q6 f' Z( S/ J: v9 H# A5 d3 C //Node->Item[j]->ImageIndex=5; + J/ [. C6 C) S- j //Node->Item[j]->SelectedIndex=4; / ~1 {2 J8 c; w7 gif((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") ) u! J @( |, I0 _; I" u { 0 D) }. j: i! k% F8 s- ]4 |4 n% ~Node->Item[j]->ImageIndex=0; % W8 G \- I& G5 b+ B+ {Node->Item[j]->SelectedIndex=4; * J% D( [7 I+ z" r TreeView1->Items->AddChild(Node->Item[j],sr.Name); 3 @, p- D8 Y3 M2 d+ H: g } p1 A, v4 [- P) N% \5 E1 T* J } 4 z* @; \4 V( f$ A8 Iwhile (FindNext(sr)==0); * {, I! a# H9 ]* B1 p5 Q) Z FindClose(sr); % e7 t; _% L! ^3 K1 p0 o b! G. ^} / x# w5 ]: K; Q, A) I: V } ! |$ H& V* A, U! w( w! O+ z} " T: b8 |# s7 p5 z( ? Screen->Cursor=crDefault; 5 [, i. \$ E- i& ~' n3 s }

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-25 00:48 , Processed in 0.521460 second(s), 52 queries .

回顶部