喫茶XRAYトップページ

[スレッド全体
]

[4003] 947_ExplorerBrowser の plExplorerFolderTreeにて返信 削除
2010/12/12 (日) 00:08:50 Sara
いつもお世話になっております。Saraです。

さて、plExplorerFolderTreeを利用させていただこうとテストしておりますが、
SelectFolderにフォルダーパスを入れてもSelectFolderに反映されません。

ソースを見る限り、SetFSelectFolderでもSetFpidlSelectFolderでも
FSelectFolderに値を入れていないためとおもわれますが、
SetFpidlSelectFolderの最後に

    SHGetPathFromIDList(FpidlSelectFolder, pFullPath);
    FSelectFolder := pFullPath;

を追加しておけば、大丈夫でしょうか?(一応これで動いてますが)

あと、隠し属性を持つフォルダーを表示するには、どのようにしたら
よいでしょうか?

度々で申し訳ございませんが、ご教示いただけたら、幸いです。

[4006] Re:947_ExplorerBrowser の plExplorerFolderTreeにて返信 削除
2010/12/12 (日) 15:01:24 Mr.XRAY
▼ Saraさん,おっ,いろいろやっていますね.

>FSelectFolderに値を入れていないためとおもわれますが、

ありゃ,失礼しました.m(_ _)m

> を追加しておけば、大丈夫でしょうか?(一応これで動いてますが)

すみませんね.UPしたサンプルも後で修正しておきます.

>あと、隠し属性を持つフォルダーを表示するには、どのようにしたら
>よいでしょうか?


plExplorerFolderTreeですよね.するとリスト6ですね.いや,7ですね.
えっと,属性を指定しているところだから,
function TplCNameSpaceTreeControlHost.SetRootFolder(pid....
のことろですね.ここの

  if Failed(m_pNameSpaceTreeControl.AppendRoot(
                              pShellItem,
                              SHCONTF_FOLDERS, //ここに属性追加
                              NSTCRS_VISIBLE or NSTCRS_EXPANDED,
                              nil)) then exit;

隠し属性は,確かHIDDENだから,
SHCONTF_FOLDERS or SHCONTF_INCLUDEHIDDEN,
でいいような.スミマセン,今Windows 7起動していないので,未確認です.
定数の一覧は以下にあります.
SUPERHIDDEN ってのもありますね.何だろう?

http://msdn.microsoft.com/en-us/library/bb762539%28v=vs.85%29.aspx


[4007] Re2:947_ExplorerBrowser の plExplorerFolderTreeにて返信 削除
2010/12/12 (日) 16:30:49 Mr.XRAY
この一連のエクスプローラのコードなんですが,
参考にしたサイトの記事がC++なんです.

Delphiでは,_AddRefと,_Releaseはいらないようです.
Delphiでは,参照カウンタを自動で管理してくれるようです.
もちろん,これらのコードの,この部分を単に削除するたけではエラーに
なってしまいますが.

後,エクスプローラとそれを表示するインターフェイスを別のクラスに
していますが,インターフェイス部分を,TPanelのメンバーにしてしまう
のもいいかも知れません.


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