エクスプローラと同じコンテキストメニューを表示

解決


Manbon  2008-03-12 18:24:03  No: 30132  IP: 192.*.*.*

例えば、ListBoxにファイル名が記述されているとして、
ここで右クリックすると、エクスプローラと同じ
コンテキストメニューを表示したいのですが、
どのようにすれば宜しいでしょうか?
随分検索してみたのですが、見つかりません・・・
これって、かなり難しいのでしょうか?

編集 削除
nyr  2008-03-12 20:35:02  No: 30133  IP: 192.*.*.*

右クリックを検出して、TPopupMenuじゃまずいんですか?
http://shopdd.blog51.fc2.com/blog-entry-167.html
http://delfusa.main.jp/delfusafloor/archive/VA009712_take/delphi/kabereg.htm
この辺を参考にレジストリを読んでくればいける感じですが。

編集 削除
nyr  2008-03-12 20:41:04  No: 30134  IP: 192.*.*.*

後はこの辺ですね
http://www.atmarkit.co.jp/fwin2k/win2ktips/638clearcontext/clearcontext.html

編集 削除
Manbon  2008-03-13 09:58:45  No: 30135  IP: 192.*.*.*

ありがとうございます。
上記3つのサイトを見ましたが、どれもエクスプローラの
右クリックメニューそのものに関する操作のようです。

やりたいのは、このメニューをDelphiで作成したアプリ上で
表示することです。
レジストリから情報を読み込んで、自前でメニューを作成
するという方法になるのでしょうか?

編集 削除
Mr.XRAY  URL  2008-03-13 20:26:14  No: 30136  IP: 192.*.*.*

エクスプローラと同じコンテキストメニューは,シェルネームスペースを使用
すると実現します.
シェルネームスペースの扱いはプログラムとしては難しい方ではないかと思います.
もし,他の方が開発したコンポーネントを使用してもいいというのであれば...

http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/780_FileInfoListETC.htm#11

参考リンク

http://www.asahi-net.or.jp/~GV4J-SGUR/narik/stp001.htm#theme1
http://www.asahi-net.or.jp/~GV4J-SGUR/narik/susucyu.htm#theme1

編集 削除
Manbon  2008-03-14 09:07:58  No: 30137  IP: 192.*.*.*

ありがとうございます。
こういうコンポーネントがあったんですねぇ・・・。

で、早速インストールしようとしたのですが、
Delphi2用のようで、Delphi5では、
「変数実パラメータと変数仮パラメータ〜」
というエラー等が沢山出てだめでした。

色々調べていて、Ole2 の宣言を ActiveX に変えたら
うまくいったというのを見つけ、試してみますと、今度は
「'OLE2.TGUID'と'System.TGUID'には互換性がありません」
というエラーが出て、お手上げになってしまいました;;
解決法がありますでしょうか?

編集 削除
Mr.XRAY  URL  2008-03-14 09:47:24  No: 30138  IP: 192.*.*.*

>Delphi2用のようで、Delphi5では、

Delphi3用のがあります.そちらではどうですか.
私のサイトのサンプルは  WindowsXP(SP2) + Delphi7で
テストしています.

編集 削除
Mr.XRAY  URL  2008-03-14 10:12:50  No: 30139  IP: 192.*.*.*

今,Delphi5で動作確認しました.(WindowsXP)
ただし,私のサンプルの場合だと

関数IncludeTrailingPathDelimiter

はDelphi5にはありせんので,代わりにAPath+'\'等として下さい.
デリミタですね.

編集 削除
Manbon  2008-03-14 10:31:01  No: 30140  IP: 192.*.*.*

重ね重ね、ありがとうございます。
できました!!感激です!!
もう1年以上できないか悩んでまして^^;

実は下記のサンプルを使用させてもらっています。
http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/792_ExplThumbnail.htm
で、この縮小表示になんとかメニューを付加できないものかと
思っていました(サンプル内にあればよかったなぁ〜と^^)。

編集 削除
Mr.XRAY  URL  2008-03-14 20:28:59  No: 30141  IP: 192.*.*.*

>http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/792_ExplThumbnail.htm

それはありがとうごさいます.でもバグありなんですが.
気づきました? 
そのうち修正します.

>思っていました(サンプル内にあればよかったなぁ〜と^^)。

つけません.そんなのつけたら,エンドユーザにいいようにされてしまいます(笑)
簡易エクスプローラのように,シンプルなのがいいのです.
あっ,でもサンプルプログラムだから関係ないか  (^_^;)

編集 削除