QQ登录

只需要一步,快速开始

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

用TreeView浏览目录

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

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

! P* B1 \9 M/ X" l, D, Xvoid __fastcall TForm1::FormCreate(TObject *Sender) 1 ?' x: ^( ?7 M& W: T5 h# s! ] { ; Q Y1 j6 ?! c! F$ WCurrentDir=GetCurrentDir(); 0 ~+ ]9 ]$ Z: r' _+ Q- ^$ g" tUpdateTreeView(); ! y2 S) I. s7 A, x8 P9 X* xUpdateListView();

+ C; {' T9 G" h% I/ E8 g

} ! }) }0 {+ S. L# \ Q //--------------------------------------------------------------------------- " G/ }+ c; D: L2 P: | void __fastcall TForm1::UpdateTreeView() ) H2 D1 m' @9 }) p { 5 l* @ \- A9 r3 pTTreeNode *rNode,*mNode; 4 l4 N$ d+ f$ x# a' \3 lTreeView1->Items->Clear(); 5 T, `* S; Q- s9 Y( M rNode=TreeView1->Items->Add(TreeView1->Selected,"我的电脑"); : D: S: q% a# `' T/ qrNode->ImageIndex=1; 1 C8 D# p/ c. @5 B, b( T0 XrNode->SelectedIndex=1; 5 d2 Q2 Y6 k% h9 W' q1 Y mNode=TreeView1->Items->AddChild(rNode,"A:"); / j _& E# N8 Z. l. J4 r C mNode->ImageIndex=2; 5 S2 e& a6 i# d( w+ n% o mNode->SelectedIndex=2; # d8 X, Q) v) i; [( J0 r. \AddDirectory("A:",mNode); 0 Q( G/ x) `' Z4 \8 X# Ofor(int i=1;i<DriveComboBox1->Items->Count;i++) ' \- s! j( I3 v( ?/ m( y* o# b; W6 ? { : G5 Q8 H4 F3 T- V' {mNode=TreeView1->Items->AddChild(rNode,AnsiString(char('B'+i))+":"); / H7 V P4 c. ]' F5 ?6 _% |mNode->ImageIndex=3; 9 f5 p$ L, q, s6 E9 N( \+ y mNode->SelectedIndex=3; R) n) h+ A7 j% C6 z. g3 [" XAddDirectory(AnsiString(char('B'+i))+":",mNode); $ H1 @6 y" `1 f! d/ J) {- i: J/ ? } ( Z5 K S. g( @5 O+ X+ y6 w3 i9 | } ) Z" e6 D+ A, d9 f //------------------------------------------------------------------------ 2 v3 ^' ^2 m1 c" z; t. f void TForm1::AddDirectory(AnsiString path,TTreeNode *fNode) 0 B3 v9 z8 \1 e; R U) p9 ` { ) z$ c4 y m7 x, C: ~ TSearchRec sr; 0 S$ M0 ~; X9 H( b$ W TTreeNode *mNode; ) O% v1 `+ Y% H ^6 M4 h' Uif(FindFirst(path+"\\*.*" ,faDirectory,sr)==0) ' d& h2 @* ]5 {' D: p! b: f{ 0 o; {- u- U) J& V- v8 L if(sr.Attr==faDirectory) 4 S1 N. U6 x ?% U$ U{ ) U/ y: H2 J- d6 j0 yif(sr.Name!="."&&sr.Name!="..") h1 N5 G" x5 ? { 3 N, z$ x2 `$ y' imNode=TreeView1->Items->AddChild(fNode,sr.Name); 5 u2 L! p7 T d- R; emNode->ImageIndex=0; 0 x* @8 j. w5 U$ f# [" N7 B mNode->SelectedIndex=4; 4 [! |: G5 |8 D. U& p// AddDirectory(path+"\\"+sr.Name,mNode); % ]$ l: j4 Z$ j0 a } 2 q% a1 f8 |! I2 \8 y } + ^5 A: p, Y/ i+ V: r6 ]3 l } 2 M) x2 E- d, X& Z" P: E while(FindNext(sr)==0) " [ k1 ?( g6 j: t( ] { 5 m, D" Y3 ~: _3 q" P2 P' Kif(sr.Attr==faDirectory) ; v6 ]9 _$ T: ?5 J { ! A/ l3 }$ P. Z% r6 J @/ E if(sr.Name!="."&&sr.Name!="..") ; q9 D. w$ I V' d x{ , j; m. I7 w- @: k& l2 a+ b' `mNode=TreeView1->Items->AddChild(fNode,sr.Name); / f7 ?& E$ a4 |' j' j- u, }; _0 WmNode->ImageIndex=0; 0 g% E( `: ^' C# F9 e5 P$ @% l mNode->SelectedIndex=4; ) a$ k$ O: L3 K* H, e) f // AddDirectory(path+"\\"+sr.Name,mNode); 8 w1 T7 Z6 o; ]6 U( ` } 2 S0 X" j# N/ p. k7 Q3 l# ~# T9 Z} + a& w/ g* |* @ A; |' H8 c} ' K' Z0 Z W& k: |4 KFindClose(sr); % z' @4 Y% H: ]* D* U- L}

4 r2 l( ~% e8 E) Z! [; D

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

8 [0 \$ `. R8 `3 {4 Q% e

void __fastcall TForm1::TreeView1Changing(TObject *Sender, TTreeNode *Node, / G K$ H) g& ]4 p/ i9 ~" M; vbool &AllowChange) & [. E; K: f- A1 K0 S- [{ 1 Y" `: |# t/ M- A+ ?3 w mScreen->Cursor=crHourGlass; + M/ `; D# i. q TSearchRec sr; & e8 b/ r. P, F' h) y TTreeNode *NodeTmp=Node; X4 X$ ^& M5 @" t: E AnsiString DirName,DirTmp; 5 i/ ~0 {& g5 Z+ V& R5 u' D% xDirName=Node->Text; ' Q, \% `3 j5 I! x. s$ }1 m& G2 _ for(int i=Node->Level;i>1;i--) 9 u9 u) W' [. j0 N$ }1 r% x{ $ o. {/ v3 n) B5 BNodeTmp=NodeTmp->arent; % n9 v- S' m' {DirTmp=NodeTmp->Text; * Q3 p% h% ]8 iif(DirTmp.SubString(DirTmp.Length(),1)!="\\") - i. B2 i Y2 R- g1 iDirTmp+="\\"; 6 k( h4 I) N+ L9 V8 t" ^) ]DirName.Insert(DirTmp,0); ! H4 ] G9 t0 C: g1 I3 W& I$ r} 1 t8 a. \& G- ]( zif(DirName.SubString(DirName.Length(),1)!="\\") , Z0 } y. V# X" k5 P0 Q/ G DirName+="\\"; ( A! I" [. A0 ?6 v3 _, Y) g7 |' W, I for(int j=0;j<Node->Count;j++) 4 o& P1 Q9 l+ N/ W{ $ [3 _0 ?/ M; i( Q+ c$ _- gif(Node->Item[j]->Count==0); 9 `( m: O3 d1 `! g0 ?/ M) D% Y{ # }- c! X" E! @2 _: y5 t( _1 b if (FindFirst(DirName+Node->Item[j]->Text+"\\*.*", faAnyFile, sr) == 0) # j. ^# D* |1 F9 W0 ?" P" D{ $ ~( l; _+ ^3 o3 y$ edo 2 x7 o# C% H) q J) [8 h { / {2 i& v2 _0 O- L4 t0 o+ h //Node->Item[j]->ImageIndex=5; 1 d% t5 q# N% u) T5 m [//Node->Item[j]->SelectedIndex=4; ) B0 `* C5 {. L) Z L: w1 {if((sr.Attr&faDirectory)&&sr.Name!="."&&sr.Name!="..") o- V' e& L& X5 t# Y1 g{ ; r, R2 H7 @! x2 c9 `1 [/ m Node->Item[j]->ImageIndex=0; " i, G9 c# G0 U6 _4 k Node->Item[j]->SelectedIndex=4; , x) ?. l; t; L. @+ i TreeView1->Items->AddChild(Node->Item[j],sr.Name); : x/ E0 a/ q* h, f0 g% d- @} * t O& t6 B5 e9 f O } - t/ s _; M6 F8 c# ? while (FindNext(sr)==0); , u2 J& h D8 O% ^3 b2 [ FindClose(sr); 1 Z# c. P- U' V: h; s) |} 0 n6 ]% Z/ m5 Y6 o6 l } 6 _, w9 n7 M8 W$ }* o } : p6 A6 l* B, R* ]4 k; AScreen->Cursor=crDefault; ( d. _! w# W$ O2 u$ p }

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-4-20 08:13 , Processed in 0.393247 second(s), 52 queries .

回顶部