ShellComboBoxが・・・。


Delphiの初心者  2004-10-21 18:26:22  No: 11471  IP: 192.*.*.*

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

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

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

編集 削除
Delphiの初心者  2004-10-23 16:37:43  No: 11473  IP: 192.*.*.*

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

編集 削除
はて?  2004-10-23 23:45:57  No: 11474  IP: 192.*.*.*

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

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

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

編集 削除
Delphiの初心者  2004-10-24 15:03:44  No: 11476  IP: 192.*.*.*

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

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

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

編集 削除
それが...  2004-10-24 15:43:29  No: 11478  IP: 192.*.*.*

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

編集 削除
ふぐちゃん  2004-10-24 16:38:47  No: 11479  IP: 192.*.*.*

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

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

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

編集 削除