▼ 宮さん
そういえばまだ,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の動作確認は省略できませんね.どうしても.
|