>>61
まずファイルのリストを保持することを考えよう。
ファイル名、サイズ等を持つクラスかレコードを作り、
それをリストにするTListを継承したクラスを作るとかね。
そしてFindFirst,Nextでそれにファイルを追加していくわけだ。
そのファイル達を画面に表示するわけだが、それにはTListBoxやTListViewを使うと良い。
もちろんOwnerDrawを使おう。仮想モードにする事もお勧めだ。
仮想モードにした場合ファイルリストにファイルが入った後ListBox.Count:=FileList.Count;のようにする。
そしてOnDrawItemでIndexの位置のファイル情報をFileListから取り、ListBox.Canvasを使って描画するわけだ。
アイコンを表示する場合、このOnDrawItemで取得すると良い。そうすれば一度に全部取得しないで済むからファイルが多くても時間が掛からなくなる。
ちなみにOnDrawItemで取ったアイコンをそのまま描画はせずにImageListに入れる。
次回以降のそのアイコンはファイルから取得せずImageListから描画するからだ。
OnDrawItemでアイコンを取得だけして描画せずに適当に作ったメッセージをPostMessageすし、
メッセージハンドラで描画するようにするとアイコン描画前に文字だけが全て表示されるようになって、
スクロール中も読みやすくなるぞ。以下略