QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

+ ^4 S( g ?: Q" a) U9 s void __fastcall TForm1::FormCreate(TObject *Sender) - v# \+ ?0 I" I( s0 q" c. q { 2 v; g& v- }0 Y% o1 w# pCurrentDir=GetCurrentDir(); ( s! Y' h" w5 C, G( A" ?2 jUpdateTreeView(); 9 r/ \( }5 g x F8 x9 G UpdateListView();

9 B3 T7 r" s# s* X: K0 [

} , P5 s) B0 Z% u9 R//--------------------------------------------------------------------------- ; X# w8 `* Q) o# t' ^# N' { void __fastcall TForm1::UpdateTreeView() # w z' j. F+ ~, r0 j( k, _* q { + O0 F D& t" S- cTTreeNode *rNode,*mNode; / i) L2 t1 R0 C2 K1 ~ TreeView1->Items->Clear(); ( v5 ^. I( b) O0 n" A; jrNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); ; b1 @5 ?" b6 z, C8 R; a) b rNode->ImageIndex=1; 3 x6 u$ d3 _: @8 x" f" srNode->SelectedIndex=1; 0 x* O' B8 R: D% }, M mNode=TreeView1->Items->AddChild(rNode,"A:"); & ]3 e4 }2 h0 a. n- C& TmNode->ImageIndex=2; + c$ G# G& f: o5 gmNode->SelectedIndex=2; " ?$ F- ? [/ i2 p/ i+ [1 E AddDirectory("A:",mNode); 0 W. U1 _- ] |, B! A4 ^ for(int i=1;i<DriveComboBox1->Items->Count;i++) 0 q. U& Z N* ~7 s { : K; U$ K1 n" d$ H: W( A* U' vmNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); * S, R$ D0 m" u9 ?mNode->ImageIndex=3; ' P N& P3 [3 u" M$ f# YmNode->SelectedIndex=3; % j( y! ^8 a: G: j( eAddDirectory(AnsiString(char('B'+i))+":",mNode); 4 w* \$ H, s5 E7 F6 L r% V3 b } 8 t& Z6 S+ W: U, |& T" @, ^4 X } ! E- @2 w6 s" l; ^, u1 e //------------------------------------------------------------------------ 6 b$ X; ?: ?; E8 `7 bvoid TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) " d- U+ l/ C2 T: n- n# x# D) M( D { 6 c( ~, j% M2 ^1 I TSearchRec sr; 7 L6 N+ S6 Z8 c8 d) ]) ~1 @8 r: G8 \TTreeNode *mNode; ; h- l4 A$ H k) t3 ~8 C; Rif(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) & l$ N& e/ l: N, I { 0 o7 E! K, U& R/ @$ Pif(sr.Attr==faDirectory) % K' x! N1 B4 t, g! o { " G+ n- g( }0 a" ^2 Bif(sr.Name!="."&&sr.Name!="..") 6 I2 C' \$ J" U# f" C( v2 ? { - k1 E- v: v% O" u2 e8 C: N4 s1 fmNode=TreeView1->Items->AddChild(fNode,sr.Name); + W6 |5 ~; r \; W mNode->ImageIndex=0; 3 p) k7 l2 L% Q" MmNode->SelectedIndex=4; 0 V! d" T! B* o5 B, t) ] // AddDirectory(path+"\\"+sr.Name,mNode); ' k8 \& ^$ T* { } * b9 [7 `: ~- n9 j; R$ M& w; B} o6 \$ v2 B% Z m" h1 ] _ } 0 y7 w# g# X3 c- e- J% G& gwhile(FindNext(sr)==0) 4 A5 \' B9 R+ i9 F. I{ 5 D5 q7 v9 v) \2 c( t5 D( B if(sr.Attr==faDirectory) ) j! U+ b& k9 x/ h4 o7 o { % w( F' t P' H# z* Bif(sr.Name!="."&&sr.Name!="..") & T% K6 x: G) y) ~* \5 F" `{ ; {$ S7 E5 Q7 J! q% J9 i mNode=TreeView1->Items->AddChild(fNode,sr.Name); ' i) w' @( ]% m7 P* k; W mNode->ImageIndex=0; * i' k; s. n. ^' j3 r1 ^mNode->SelectedIndex=4; , r0 n2 C& d# o8 p% ?1 _& ] // AddDirectory(path+"\\"+sr.Name,mNode); $ p6 Q' E' u5 h/ T5 Z} 2 f0 P: ?' U3 W } : T0 _; H% W3 O* K3 g0 j} ( e$ @% t7 h) p+ x) j1 h3 ^4 yFindClose(sr); - S3 x. Z! j- p) R1 R}

, X0 J: p# g8 E, ~) K2 |

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

2 b, z+ a$ @; j

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, * v- i& Z; ?, a/ U. s7 d& H; { bool &AllowChange) 7 D) p. P$ B m2 [( D5 q { - ]) }* k0 _7 s7 {8 y; ] Screen->Cursor=crHourGlass; 1 x, N/ x2 B P& U+ `# qTSearchRec sr; . `( K) m: m8 g3 N& @TTreeNode *NodeTmp=Node; ; E7 W0 E$ J$ i4 H" B5 T( U AnsiString DirName,DirTmp; . F" W1 j0 D' sDirName=Node->Text; * n! K/ Y6 @' P+ R+ Z* S2 j3 I for(int i=Node->Level;i>1;i--) * U% |: a, q/ ~: ?7 F) s. E{ " u6 ]' _$ T& Z7 ?& M NodeTmp=NodeTmp->arent; 3 e5 Z! P4 s& p Z( K- ]DirTmp=NodeTmp->Text; / v* W1 W! ?, }& O& G2 F, [3 m* `/ _ if(DirTmp.SubString(DirTmp.Length(),1)!="\\") ' o5 K# r& [. e' k1 s1 p$ a+ B7 E; UDirTmp+="\\"; ' z! D% b0 ]7 l8 d- g4 l DirName.Insert(DirTmp,0); & B# F9 X" D3 C } $ x% K2 b8 Q2 ?/ D, d8 A5 ~ V if(DirName.SubString(DirName.Length(),1)!="\\") 2 W, m$ O! b* \9 c DirName+="\\"; & z7 y `! c T- T( L for(int j=0;j<Node->Count;j++) : R! _& H/ d$ J{ 1 l3 ? ~- P4 o' w9 Aif(Node->Item[j]->Count==0); . ? |) m/ c' J6 P5 N{ / Q) _: w! O0 ]1 Q% o5 A. M( gif (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) , Z" H: ?" k" l5 d* ^3 C% @% v- Y! a { 2 o! K" z0 K; \5 B9 N" bdo 7 h! }) W. L/ m& @{ ' A/ p' Z6 i! X U. j3 ~//Node->Item[j]->ImageIndex=5; 9 ^/ F: t, n* ^7 g8 f- {//Node->Item[j]->SelectedIndex=4; ! v7 x: j% L' I2 E4 p) T if((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") 7 q$ |: H5 ~& K" t { " ^. N8 R, y: g% n7 { Node->Item[j]->ImageIndex=0; 2 Q& J* G1 m' B+ ANode->Item[j]->SelectedIndex=4; 4 ?( v9 J- a' z2 t8 {( \ TreeView1->Items->AddChild(Node->Item[j],sr.Name); 3 G/ N" N% J! Q: P& w8 f- F2 Y} , [1 o) \" k, Y% f} - x4 f' x# G5 f while (FindNext(sr)==0); ) z4 T( E; I( b: I FindClose(sr); 4 Y8 h/ @$ Y% y: f% I- H7 v} 8 B5 J3 y+ x! r$ {} 1 s8 K i. ~1 t; e} ! g, d! G, C( } Screen->Cursor=crDefault; + Q$ H' @. Y3 Y) x& a }

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-10 21:09 , Processed in 0.432471 second(s), 51 queries .

回顶部