喫茶XRAYトップページ

[スレッド全体
]

[2430] Re:検索順序は本当はどうなるのでしょうか?返信 削除
2009/6/11 (木) 11:16:47 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の動作確認は省略できませんね.どうしても.


[2431] Re2:検索順序は本当はどうなるのでしょうか?返信 削除
2009/6/11 (木) 11:23:52 Mr.XRAY
> Delphi2007の動作確認は省略できませんね.どうしても.

何回か書いていますが,ワードとエクセル操作フォームの対応が
ほぼ終了したところです.
ダウンロード数が多い提供ものですので,早くやりたかったのですが.

Vistaでは新規にPCを購入するとIE7です.この問題を解決したかった
のです.
IE7では,ブラウザとエクスプローラの機能が分離されて,TWebBrowser
上に表示されなくなったものですから(別窓表示になる)


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82