喫茶XRAYトップページ


[4416] 「812_フォルダツリーとファイル一覧」で任意拡張子のファイルみ表示返信 削除
2011/3/16 (水) 19:43:00 なお
『812_フォルダツリーとファイル一覧 (エクスプローラ)』
http://mrxray.on.coocan.jp/Delphi/plSamples/812_ExplorerTest.htm
こちらのコンポーネントとサンプルプログラムを使用させて頂いています。

行き詰まってしまったので、どなたか1つアドバイスをお願い致します。

指定した拡張子のファイルだけを表示させたいのですが、
どうすれば良いのかわかりません。
プロパティ「FindText」を用いると出来そうな感じがするのですが、
うまく使えません。


具体的に行った内容は、
「.pdf」ファイルのみを表示させたいので、
plFolderTree1.Width         := 220;
の後ろに
plFileList1.FindText := '.pdf';
を追記してみました。
残念ながら追記前と後とで変わりがありませんでした。


plFileList1.FindText := '.pdf';
をどこに記述すべきなのでしょうか?
ちなみに、コードは上記URLのサンプルそのままです。

よろしくお願いいたします。

環境:XpSP2 , Delphi2010

[4417] Re:「812_フォルダツリーとファイル一覧」で任意拡張子のファイルみ表示返信 削除
2011/3/16 (水) 19:57:57 Mr.XRAY
▼ なおさん,こんにちは.

当サイトのサンプルをご利用いただき,ありがとうございます.

> どうすれば良いのかわかりません。

そういう場合はあきらめてください.人生はあきらめることも大切です.
では,さようなら.
ウソです.これから少し他のことをかたづけてから,見てみます.
その前に他の方からレスがあれば,それはそれで...


[4418] Re2:「812_フォルダツリーとファイル一覧」で任意拡張子のファイルみ表示返信 削除
2011/3/16 (水) 20:05:47 なお
▼ Mr.XRAYさん

> そういう場合はあきらめてください.人生はあきらめることも大切です.
> では,さようなら.


ドキッとしました。
もう少しコードと睨めっこ、睡魔と戦いながら…どうしよう…


> ウソです.これから少し他のことをかたづけてから,見てみます.

良かったです。
ありがとうございます。
わたしは急ぎませんので、お時間のあるときで構いませんので。

どうぞ、よろしくお願いいたします。

[4419] Re:「812_フォルダツリーとファイル一覧」で任意拡張子のファイルみ表示返信 削除
2011/3/16 (水) 23:09:46 Mr.XRAY
▼ なおさん,すみませんね.お待たせして.

> 指定した拡張子のファイルだけを表示させたいのですが、

これ,OnFolderChangingイベントで設定できるのですが,今チェックしたら,
大文字と小文字を区別してしまうようになってしまっています.
コンポーネントのソースを修正しますので,ちょと待っていただけますか.


[4420] Re2:「812_フォルダツリーとファイル一覧」で任意拡張子のファイルみ表示返信 削除
2011/3/16 (水) 23:23:10 Mr.XRAY
> 大文字と小文字を区別してしまうようになってしまっています.

えっと,失礼,
http://mrxray.on.coocan.jp/Delphi/plSamples/812_ExplorerTest.htm
ここのリスト1に以下のOnFolderChangingイベントの参考コードがあります.

procedure TForm1.plFileList1FolderChanging(Sender: TObject;
   var AFindText: String);
begin
  AFindText := '';
end;

AFindText := '.DOC';

とすれば拡張子が.docのファイルだけを表示できます.
フォルダは対象外です.
拡張子の文字は大文字で指定してください.必要なら常に大文字に
変換してAFindTextに代入しておくといいでしょう.

#  これはバグなのか.いや仕様ということにしておきます.


[4421] Re3:「812_フォルダツリーとファイル一覧」で任意拡張子のファイルみ表示返信 削除
2011/3/16 (水) 23:29:00 Mr.XRAY
> とすれば拡張子が.docのファイルだけを表示できます.

これ,ウソですね.
正確には,ファイル名に .docまたは.DOCを含むファイルのみを表示します.
拡張子を検出しているわけではありません.


[4423] Re4:「812_フォルダツリーとファイル一覧」で任意拡張子のファイルみ表示返信 削除
2011/3/17 (木) 10:22:19 なお
▼ Mr.XRAYさん

ありがとうございました。
無事、抽出できました。

私はコンポーネント内部のプロパティに対して、
値を代入しようとしていたのですね。(タブン...)

助かりました、ありがとうございました。

[4424] Re5:「812_フォルダツリーとファイル一覧」で任意拡張子のファイルみ表示返信 削除
2011/3/17 (木) 10:48:43 Mr.XRAY
▼ なおさん

> 私はコンポーネント内部のプロパティに対して、
> 値を代入しようとしていたのですね。(タブン...)


いえ,間違っていないんです.あのサンプルで使用しているコンポの
仕様が特殊なんです,
元々簡易エクスプローラ作成用ですので...
つまり,皆さんが思うようにファイルリスト用ではないということです.
もちろん,ソースコードがあるので,いくらでも改変は可能ですけどね.


[4426] Re6:「812_フォルダツリーとファイル一覧」で任意拡張子のファイルみ表示返信 削除
2011/3/17 (木) 11:04:16 Mr.XRAY
> いえ,間違っていないんです.あのサンプルで使用しているコンポの

これだけでは不親切ですね.
FindTextプロパティを有効にするには,OnFolderChangingイベントで
AFindTextを空にして,

procedure TForm1.plFileList1FolderChanging(Sender: TObject;
   var AFindText: String);
begin
//  AFindText := '';
end;

OnShowイベント等で,ファイルリストを表示する前に設定します.
すると,常に,その文字列を含むファイルのみ表示します.
サンプルのページのコードの場合ですと,

procedure TForm1.FormShow(Sender: TObject);
begin
  //まだルートも設定していないのでフォルダの変更監視はしない
  ActiveMonitor := False;

  Self.Width   := 644;
  Self.Height  := 408;
  plFileList1.Column[0].Width := 180;
  plFolderTree1.Width         := 220;

  btnBack.Enabled      := False;
  btnReName.Enabled    := False;
  btnCopy.Enabled      := False;
  btnPaste.Enabled     := False;
  btnDelete.Enabled    := False;
  btnNewFolder.Enabled := False;
  btnRefresh.Enabled   := False;


  plFileList1.FindText := '.DOC';  //ここを追加
  //ルートフォルダを指定しなければ何も表示しない
  plFolderTree1.RootFolder := 'C:\';
end;

ではでは,がんばってください.


[4427] Re7:「812_フォルダツリーとファイル一覧」で任意拡張子のファイルみ表示返信 削除
2011/3/17 (木) 12:22:57 なお
▼ Mr.XRAYさん

追加で丁寧なアドバイス、ありがとうございます。

ようやく当初に指定方法がうまくいかない理由がわかりました。
いくら指定しても、クリアされていたのですね。

今回教えて頂いた
//AFindText := '';
の方法で使ってみようと思います。

ありがとうございました。

[4428] Re8:「812_フォルダツリーとファイル一覧」で任意拡張子のファイルみ表示返信 削除
2011/3/17 (木) 14:18:07 Mr.XRAY
▼ なおさん

> いくら指定しても、クリアされていたのですね。

です.プログラムなんてそんなもんです,
自分では中々気づかないもんです.

昔は,カンマとピリオドの違いでプログラムが動作しないことがいくら
でもありました.
それだけを気づくまで一週間もかかったことがあります.

もしかしたら,下らない内容,初歩的なことかも知れないと思っても
人に訊いてしまうのも1つの手ですね.

宿題や入試問題を丸投げして質問するのは感心しませんけど(笑)


INCM/CMT
Cyclamen v3.82