名前 題名 ▼ Mr.XRAYさん > ▼ 宮さん > > そういえばまだ,TreeViewの問題がありましたっけ. > ちょっと待ってくださいね.少し落ち着いてきたところですので, > > > 気になりだして、質問してもいいでしょうか。 > > どうぞ,どうぞ,質問しやすいように,サンプル,全てのページに図番号と > リスト番号をつけているのですから. > ただし,時間が経過すると忘れてしまうかも(笑) > > これは,ソートと表示順番の問題ですよね? > > 通常,FFileList.Sort(Addr(SortFFileList)); > とすると,TStringList(TList)が決めたソートの順番です. > > >簡易エクスプローラでは、ツリービューの方は > >エクスプローラと同じに表示します。 > > これはそのようになるようにしています. > シェルネームスペースを使用すると,エクスプローラと同じ順番に > リストを作成してくれますが(デフォルトでは) > 一連のサンプルでは,シェルの機能を使用していません. > そのためにそのようになります. > > 簡易エクスプローラでは,エクスプローラ(シェル)の表示仕様を解析して > コーディングしています(結構レアなコードだと勝手に思っています). > > 表示の順番が気に食わないのであれば,自分でソートのルーチンを作成 > して,自分なりの仕様にするしかないですね. > > >procedure TForm1.Button1Click(Sender: TObject); > >begin > > Update;<−−−−−−−コレは何の働きをするのでしょうか? > > 宮さんの環境では発生しないのかも知れませんが,環境によっては, > ダイアログの表示が終了した時に,画面の表示が乱れる(欠損等)こと > があります.そのために,再表示をしています. > つまり,体裁上の問題です.動作そのものには関係ありません. > ダイアログで処理に時間がかかるなど,重い処理の場合は特にそうです. > したがって,[キャンセル]で閉じた場合は必要ないようです. > > > destructor TplDataList.Destroy; > > ・・・ > > inherited;<−−−−−−−コレは何の働きをするのでしょうか? > > end; > > これは,そのものズバリで,元のTListのDestroyを実行しているだけです. > ihheritedはそういう意味ですから. > inheretedを実行しないで,自前で処理するのであれば必要ありません. > (あまりそういうことはしませんが,やることも,実はあります > よっぽど詳しく本サイトのコードを読まないと分かりませんが) > > このような疑問の場合,疑問に思った行を削除して実行してみるのも > 1つの動作確認になるかも知れません. > ただ,単にメモリリークが発生するだけの場合もあるかも知れませんが. > > > ところで,シェルの機能を使用したフォルダツリー,ファイルリストは > 開発中です.実は数年前からやっているのですが,他のことをやったり > して中断しています. > これは,サンプルとしてUPするには厳しいのでコンポーネントになります. > 今考えている手順は以下の通りです. > > 1. TplPrevのVistaでの描画問題の修正 > 2. シェル機能のファイルとフォルダのコンポ開発 > 3. それを使用して,ファイル関連ダイアログコンポのVista+ Delphi2007 > の対応確認と修正 > 4. 他のコンポのVista+ Delphi2007への対応確認と修正 > 5. Delphi2009への移行 > > Delphi2007の動作確認は省略できませんね.どうしても. GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link