例えば、ListBoxにファイル名が記述されているとして、
ここで右クリックすると、エクスプローラと同じ
コンテキストメニューを表示したいのですが、
どのようにすれば宜しいでしょうか?
随分検索してみたのですが、見つかりません・・・
これって、かなり難しいのでしょうか?
右クリックを検出して、TPopupMenuじゃまずいんですか?
http://shopdd.blog51.fc2.com/blog-entry-167.html
http://delfusa.main.jp/delfusafloor/archive/VA009712_take/delphi/kabereg.htm
この辺を参考にレジストリを読んでくればいける感じですが。
後はこの辺ですね
http://www.atmarkit.co.jp/fwin2k/win2ktips/638clearcontext/clearcontext.html
ありがとうございます。
上記3つのサイトを見ましたが、どれもエクスプローラの
右クリックメニューそのものに関する操作のようです。
やりたいのは、このメニューをDelphiで作成したアプリ上で
表示することです。
レジストリから情報を読み込んで、自前でメニューを作成
するという方法になるのでしょうか?
エクスプローラと同じコンテキストメニューは,シェルネームスペースを使用
すると実現します.
シェルネームスペースの扱いはプログラムとしては難しい方ではないかと思います.
もし,他の方が開発したコンポーネントを使用してもいいというのであれば...
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
ありがとうございます。
こういうコンポーネントがあったんですねぇ・・・。
で、早速インストールしようとしたのですが、
Delphi2用のようで、Delphi5では、
「変数実パラメータと変数仮パラメータ〜」
というエラー等が沢山出てだめでした。
色々調べていて、Ole2 の宣言を ActiveX に変えたら
うまくいったというのを見つけ、試してみますと、今度は
「'OLE2.TGUID'と'System.TGUID'には互換性がありません」
というエラーが出て、お手上げになってしまいました;;
解決法がありますでしょうか?
>Delphi2用のようで、Delphi5では、
Delphi3用のがあります.そちらではどうですか.
私のサイトのサンプルは WindowsXP(SP2) + Delphi7で
テストしています.
今,Delphi5で動作確認しました.(WindowsXP)
ただし,私のサンプルの場合だと
関数IncludeTrailingPathDelimiter
はDelphi5にはありせんので,代わりにAPath+'\'等として下さい.
デリミタですね.
重ね重ね、ありがとうございます。
できました!!感激です!!
もう1年以上できないか悩んでまして^^;
実は下記のサンプルを使用させてもらっています。
http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/792_ExplThumbnail.htm
で、この縮小表示になんとかメニューを付加できないものかと
思っていました(サンプル内にあればよかったなぁ〜と^^)。
>http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/792_ExplThumbnail.htm
それはありがとうごさいます.でもバグありなんですが.
気づきました?
そのうち修正します.
>思っていました(サンプル内にあればよかったなぁ〜と^^)。
つけません.そんなのつけたら,エンドユーザにいいようにされてしまいます(笑)
簡易エクスプローラのように,シンプルなのがいいのです.
あっ,でもサンプルプログラムだから関係ないか (^_^;)
ツイート | ![]() |