お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"TreeViewにDirectoryを表示する"




TreeViewにディレクトリ名を表示します。
Find関数はすべてのファイルを検索するので
CPU、HDを浪費しているのが難点です。



procedure TForm1.TV1set;
var
 j,er:Integer;
 Dir : String;
 SearchRec: TSearchRec;
 TreeNode:TTreeNode;
begin
   j := 0;
while  j <= TreeView1.Items.Count - 1  Do
begin // while 1

   TreeNode := TreeView1.Items[j];
   Dir := TreeNode.Text;
   while TreeNode.Parent <> nil Do
   begin // while 2
         TreeNode := TreeNode.Parent;
         Dir := TreeNode.Text + '\'+ Dir;
   end;  // while 2

    TreeNode := TreeView1.Items[j];
    er := FindFirst(Dir+'\*.*', faDirectory, SearchRec);

 try

   while er = 0 do
   begin   // while 3
   If (SearchRec.Attr >= faDirectory) AND (SearchRec.Attr < faArchive)
 then
   begin
   if not (SearchRec.Name = '.' ) And not (SearchRec.Name = '..') THen
   TreeView1.Items.AddChild( TreeNode,SearchRec.Name);
   end;
   er := FindNext(SearchRec);
   end;  // while 3

 finally
             FindClose(SearchRec);
 end; // try

  j := j + 1;

end; //  While 1

procedure TForm1.FormActivate(Sender: TObject);
Var
   TreeNode : TTreeNode;
begin
      TreeView1.Items.Clear;
      TreeNode := TreeView1.Items.Add(nil, 'A;\');
      TreeNode.Text := 'A:';
      TV1set;
      TreeNode := TreeView1.TopItem;
      TreeNode.Expanded := True;
end;

TTY  


Original document by TTY             氏 ID:(PXU02510)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum