top pageへ.

Software Library.

Original Components.

FolderFileList.

  freeware

ダウンロード.

Version1.10
公開日2009/01/07
ファイルサイズ451kB
ファイル名folderfilelist110.zip
形式zip書庫

概要.

 フォルダツリービュー、フォルダドロップダウン、ファイルリストビューおよびそれらを操作するツールバーの4つを含むパッケージです。フォルダやファイルを選択するUIの構築において、エクスプローラライクな外観と操作性を提供するためのコンポーネントです。
 C++Builder6にはTFileListBox/TDirectoryListBox/TDriveComboBoxが用意されています。これらのコンポーネントはWin 3.1パレットに入っていることからもわかるように、外見はWindows 3.1世代の古臭いものです。Windows xp以降のような新しい外見のコンポーネントが欲しかったこと、他の方の作られた同様のコンポーネントには期待した機能の物が見当たらなかったことから、作ってしまいました。
 Windowsのシェルインターフェイスのラッパーではないので、多少エクスプローラと外見や動作の違うところはありますが、ほぼ同じ感覚で使用できます。
 TCustomTreeView/TCustomComboBox/TCustomListView/TToolBarから派生しています。


 TFolderTreeViewは、フォルダをダブルクリックすると、下位フォルダがあれば表示されます。
 TFolderFileToolBarは、現在TFolderTreeView/TFolderDropDown/TFileListViewが対応している機能のボタンのみが表示されます。


スクリーンショット.



フォームエディタに配置したコンポーネントの様子です。
配置位置は下記のとおり。

TFolderTreeView TFolderFileToolBar
TFolderDropDown TFileListView

マニュアル&ヘルプ&サンプル.

 マニュアルは別ページで。このマニュアルはアーカイブに含まれています。
 ヘルプはこちらのページから別途ダウンロードしてください。
 一応、サンプルとして簡単な動作確認の出来るアプリのソースを、アーカイブに含めてあります。

インストール/アンインストール/利用時の注意.

インストール.

 インストーラは付属していません。今回はパッケージでの公開です。パッケージのインストール方法はC++Builderのヘルプを参照してください。
 ソースは今のところ非公開です。
 コンポーネントは"Ysl"というパレットを作ってその中に登録されます。


アンインストール.

 アンインストーラも付属していません。アンインストールもC++Builderから行ってください。


利用時の注意.

 本コンポーネントを利用するプロジェクトにおいて、下記の設定が必要です。


改版履歴.

Version日付変更点
1.10 2009/01/07
  • TFolderFileToolBarを追加
  • TFolderTreeView::EmphasizeFocusプロパティーを追加
  • TFileListViewで連携設定なしでもダブルクリックによる遷移を可能に
  • TFileListView::Clearメソッドを追加
  • TFileListViewにポップアップの表示メニューを追加
  • PopupMenuプロパティーを有効に
  • TFileListView::ViewStyleの初期値をvsListに変更
  • TFolderTreeView::OnlyFileSystem=trueで「ごみ箱」を表示しないように修正
  • TFolderTreeView::OnlyFileSystem=falseでショートカットを表示しないように修正
  • TFileListView::OnlyFileSystemの初期値間違い修正
1.002008/12/02
  • 初版公開

今後の予定.


ひとこと

Ver. 1.10

 やっぱりないと使いにくいかと思い、ファイルオープンダイアログによくあるツールバーを追加してみました。これまた、似てるけどビミョーに外見も動作も違います。
 ボタンは連携するコントロールをプロパティに設定することで、対応したボタンのみが表示されます。今のところ「1つ上のフォルダへ」「表示メニュー」の2つしかありませんが。他のボタンはフォルダツリービュー/フォルダドロップダウン/ファイルリストビューが対応する機能を実装していないので、今のところ実装する意味がありません。こんな仕様でいいのかどうか作った本人も疑問を感じながらも、反応を見るためにも公開してみることに。あまりにもいい加減な仕様ですが、おまけということで。

 Ver. 1.00のTFolderTreeViewのみにあった「OnlyFileSystem=trueでも”ごみ箱”が表示される」制限ですが、意外と簡単に対処できました。TFolderDropDownも同様の処理に変えたので、OnlyFileSystem=falseでごみ箱が表示されるようになりました。←いいのか?

 そのほかにも使ってみて気づいたところをいろいろ修正。やっぱり使ってみないと欠点を認識しにくいですね。
 また実験的に、サンプルとして実行ファイルをアーカイブに入れました。そのせいでかなりアーカイブがでかくなってます。


Ver. 1.00

 オリジナルコンポーネントの公開も第3弾になりました。いまだにカスタムコンポーネントの作成には苦労します。予想外の動作の多さと、説明の少なさに。
 エクスプローラライクな外観を実現するために、シェルインターフェイスを使用しています。これまたMSDNの英語の説明と格闘することに。おまけに量が半端じゃないので、概要を理解するだけでも苦労しました。Webでシェルインターフェイスの説明を公開している方々、参考にさせていただきました。でもシェルインターフェイスのほんの一部しか理解してないし、ほんの一部しか利用してないし。またC++Builder6に付属のヘッダ/ライブラリが古くて、Windows2000以降に追加されたものはコンパイルエラーになるので、利用できるAPIを探すだけでも大変。
 C++Builderの既存のクラスから派生させて作ったので、エクスプローラとちょっと違う外見&動作になってます。特にTFileListViewがひどいですね。ViewStyleプロパティを変更しても、Windows xpで見慣れたエクスプローラとはアイコンの並びが違うし。COM+のラッパーとして作ればエクスプローラと限りなく同じにできるかもしれません。しかし前述のC++Builder付属物の古さから可能か否か調査が必要であること、Webで検索しても情報が出てこなくて作成が困難そうなので、今の仕様にしました。

 最初TFolderDropDownはTCustomComboBoxExから派生させていたのですが、どうもTCustomComboBoxExが期待どおりに動きません。アイコンオーバーレイはまったく効かないし(ヘルプの説明も怪しい)、TComboExItem::Dataを使用すると不正終了するし。
 結局、アイコンオーバーレイの問題はTCustomComboBoxでオーナードロースタイルを使用して解決。TComboExItem::Dataの問題はTStrings::Objectsと同様ということまではわかったものの、解決できず。リストなどにもTStrings型のプロパティを持つコンポーネントはありますが、このようなコンポーネントでは、コンポーネント破棄時の内部使用データの破棄で、よく問題に出くわします。


▲page top.
Copyright 2005-2016, yosshie.