喫茶XRAYトップページ

[スレッド全体
]

[13123] plContextMenuでエラー返信 削除
2019/11/3 (日) 01:56:57 Kuze
Mr.XRAYさん

plContextMenuを利用させていただいておりますが、
Win10環境で、isoファイル上でContextMenuを実行すると、
エラーが発生するため、調べてみましたのでご報告いたします。

Line 548 付近ですが、InfoをクリアしないままGetMenuItemInfoを
使用しており、エラーが発生するようです。
この現象は、isoファイルの場合、画像付きの「マウント」という
メニューが最後に処理されるため、Info.fType = MFT_BITMAPになっているケースです。
通常(Info.fType = MFT_MFT_STRING)は、クリアしなくても、エラーにならないようです。

修正前
      //最後が区切り文字だったら削除
      ItemCount := GetMenuItemCount(Handle);
      GetMenuItemInfo(Handle, ItemCount - 1, True, Info);

修正後
      //最後が区切り文字だったら削除
      ItemCount := GetMenuItemCount(Handle);
      FillChar(VerbName, SizeOf(VerbName), #0);           // ★追加
      Info.cbSize     := SizeOf(Info);                    // ★追加
      Info.fMask      := MIIM_SUBMENU or MIIM_TYPE;       // ★追加
      info.dwTypeData := VerbName;                        // ★追加
      Info.cch        := Length(VerbName);                // ★追加
      GetMenuItemInfo(Handle, ItemCount - 1, True, Info);

としたほうが良さそうです。

[13129] Re:plContextMenuでエラー返信 削除
2019/11/9 (土) 22:01:18 Mr.XRAY
> としたほうが良さそうです。

というより,そうしないといけませんね.
ちょっと時間が経っているので,気になる人がいるかも知れないので.連絡.

今,しばらく他のことをやっているので,記事と,ファイルの更新はお待ちください.
「どうしたらいいのか ?」という質問ではなく,
解決策が提示されていますので,困ることはないでしょう (^^;


[13216] コンテキストメニューの修正版 UP返信 削除
2020/2/9 (日) 22:33:16 Mr.XRAY
▼ Kuzeさん,ありがとうございました.

ようやく修正版を UP しました.
申し訳ありませんが,コートをそのまま利用させいいただきました.

[ 814_コンテキストメニュー コンポーネント ]
http://mrxray.on.coocan.jp/Delphi/plSamples/814_ContextMenu_DropSource.htm


[13217] Re:コンテキストメニューの修正版 UP返信 削除
2020/2/9 (日) 22:49:26 Mr.XRAY
良い子の皆さんはレコード型の初期化を忘れないでね !!

そんななのお前だけだって ?
ゴメンね m(__)m

https://www.youtube.com/watch?v=HDlafkV1HDU&feature=youtu.be&t=133


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