Delphi6Perlonilで、ShellComboBoxを使ったエクスプローラのようなアプリケーションを作っているのですが、どうもShellComboBoxが選択したフォルダとは違うフォルダを、Pathプロパティとして返すようです。そなたか解決策を教えてください。
そんなことはないですけど...
あ、大体はうまくいくのですが、rootプロパティをrfDeskTopにしたとき、デスクトップ上のフォルダで誤動作が起きます。
現象が再現できないですけど...
もしかして、ユーザごとのフォルダと、All Usersのフォルダと混同していませんか?
デスクトップには、ユーザ毎に作られたフォルダ・ファイルも、All Usersにつくられたフォルダ・ファイルも一緒に表示されますよ。
にしのさん、どういうことですか?
> rootプロパティをrfDeskTopにしたとき
Rootプロパティは TRoot = type string; で、rfDesktop は TRootFolder ...ですよね?
そもそもコンパイルが通らないのではないでしょうか?
>Rootプロパティは TRoot = type string; で、rfDesktop は TRootFolder ...ですよね?
確かに、
ShellComboBox1.Root := rfDesktop; // TRootFolder
と書くとコンパイルエラーになります。でも、
ShellComboBox1.Root := 'rfDesktop'; // string
と書くとコンパイルが通って正常に機能するんですよ。
TShellComboBoxのヘルプやソースがないので、Rootの型は確認できませんが。
ソースコードを調べてみたところ、なるほど、Rootプロパティに'rfDesktop'が
設定されているとrfDesktopが使われる仕組みになっていました。
ためしにほかのパソコンで実験してみたところ、うまく動作しました。
ちなみに誤動作した環境は Wimdows Me なのですが、どうしてうまくいかないのでしょうか?
ツイート | ![]() |