ShellComboBoxが・・・。


Delphiの初心者  2004-10-22 03:26:22  No: 11471  IP: [192.*.*.*]

Delphi6Perlonilで、ShellComboBoxを使ったエクスプローラのようなアプリケーションを作っているのですが、どうもShellComboBoxが選択したフォルダとは違うフォルダを、Pathプロパティとして返すようです。そなたか解決策を教えてください。

編集    削除
はて?  2004-10-23 18:33:45  No: 11472  IP: [192.*.*.*]

そんなことはないですけど...

編集    削除
Delphiの初心者  2004-10-24 01:37:43  No: 11473  IP: [192.*.*.*]

あ、大体はうまくいくのですが、rootプロパティをrfDeskTopにしたとき、デスクトップ上のフォルダで誤動作が起きます。

編集    削除
はて?  2004-10-24 08:45:57  No: 11474  IP: [192.*.*.*]

現象が再現できないですけど...

編集    削除
にしの  2004-10-24 19:52:07  No: 11475  IP: [192.*.*.*]

もしかして、ユーザごとのフォルダと、All Usersのフォルダと混同していませんか?
デスクトップには、ユーザ毎に作られたフォルダ・ファイルも、All Usersにつくられたフォルダ・ファイルも一緒に表示されますよ。

編集    削除
Delphiの初心者  2004-10-25 00:03:44  No: 11476  IP: [192.*.*.*]

にしのさん、どういうことですか?

編集    削除
ふぐちゃん  2004-10-25 00:14:25  No: 11477  IP: [192.*.*.*]

> rootプロパティをrfDeskTopにしたとき
Rootプロパティは TRoot = type string; で、rfDesktop は TRootFolder ...ですよね?
そもそもコンパイルが通らないのではないでしょうか?

編集    削除
それが...  2004-10-25 00:43:29  No: 11478  IP: [192.*.*.*]

>Rootプロパティは TRoot = type string; で、rfDesktop は TRootFolder ...ですよね?
確かに、
  ShellComboBox1.Root := rfDesktop;   // TRootFolder
と書くとコンパイルエラーになります。でも、
  ShellComboBox1.Root := 'rfDesktop'; // string
と書くとコンパイルが通って正常に機能するんですよ。
TShellComboBoxのヘルプやソースがないので、Rootの型は確認できませんが。

編集    削除
ふぐちゃん  2004-10-25 01:38:47  No: 11479  IP: [192.*.*.*]

ソースコードを調べてみたところ、なるほど、Rootプロパティに'rfDesktop'が
設定されているとrfDesktopが使われる仕組みになっていました。

編集    削除
Delphiの初心者  2004-11-04 18:19:33  No: 11480  IP: [192.*.*.*]

ためしにほかのパソコンで実験してみたところ、うまく動作しました。
ちなみに誤動作した環境は Wimdows Me なのですが、どうしてうまくいかないのでしょうか?

編集    削除