喫茶XRAYトップページ


[12769] plContextMenuでaccess violationエラー返信 削除
2019/4/29 (月) 19:59:37 Kuze
Mr.XRAYさん

久世です。

plContextMenuコンポーネントにて、表題のエラーが発生しており
解決方法が無いか知りたく書き込みさせていただきました。

私のPCには、TortoiseSVNがインストールされているのですが、
「SVNチェックアウト(K)...」と、「TortoiseSVN」の項目のところで、
添付画像のように、Info.dwTypeDataの中身が''となっており、
StrNewMenuへの代入でエラーが発生します。

コメントに、「まれに取得できない文字列がある」と書かれているので
このことなのかもしれませんが、解決策はありませんでしょうか?
OSは、Win10 32bit。DelphiはXE4です。
お手数をおかけしますがよろしくお願いいたします。

[12770] Re:plContextMenuでaccess violationエラー返信 削除
2019/4/29 (月) 22:40:02 Kuze
久世です。

自己レスです。
問題となる項目のfTypeは、MFT_BITMAPでした。
そこで、下記のように書き換えることで回避できました。

変更前
  //新規メニューのハンドルを取得.日本語版のみ対応
  if (csf_CREATENEW in FMenuOptions) and (ContextMenuNew <> nil) then begin

変更後
  //新規メニューのハンドルを取得.日本語版のみ対応
  if (csf_CREATENEW in FMenuOptions) and (ContextMenuNew <> nil) and (Info.fType<>MFT_BITMAP) then begin

MENUITEMINFOの説明によると、
Info.fType = MFT_BITMAPに関しては、
「アイテムにビットマップを表示します。
dwTypeData メンバの下位ワードはビットマップハンドルを表します。」
とのことなので、ビットマップ画像を取得したほうが良いのかもしれませんが、
取得しても使い道がわかっていませんので、無視しています。

[12771] Re2:plContextMenuでaccess violationエラー返信 削除
2019/4/29 (月) 23:23:03 Mr.XRAY
▼ Kuzeさん

> 問題となる項目のfTypeは、MFT_BITMAPでした。
> そこで、下記のように書き換えることで回避できました。


おおっ !! 何と申していいのやら.
先程 Kuze さんの書き込みを読んで,
これは面倒そうだ,明日にでも見てみようかな,と思っていました.
助かりました.明日にで修正して UP したいと思います.

 「アイテムにビットマップを表示します。

そう言えば画像を表示するのありますね.

> 取得しても使い道がわかっていませんので、無視しています。

う〜む.私も分かりません.
画像は無視することにしませんか ?
うん,そういうことにしましょ !!


[12772] Re3:plContextMenuでaccess violationエラー返信 削除
2019/4/29 (月) 23:58:30 Kuze
Mr.XRAYさん、もう少し考えたのですが、

MFT_OWNERDRAWのときも、
「オーナードロー・メニューアイテムであることを示します。・・・
dwTypeData はアプリケーション定義値を表します。」
という説明があるので、

変更後
  //新規メニューのハンドルを取得.日本語版のみ対応
  if (csf_CREATENEW in FMenuOptions) and (ContextMenuNew <> nil) and (Info.fType=MFT_STRING) then begin

と条件を限定したほうがよさそうです。


▼ Mr.XRAYさん

> 助かりました.明日にで修正して UP したいと思います.
>
>  「アイテムにビットマップを表示します。
>
> そう言えば画像を表示するのありますね.
>
> > 取得しても使い道がわかっていませんので、無視しています。
>
> う〜む.私も分かりません.
> 画像は無視することにしませんか ?
> うん,そういうことにしましょ !!


[12773] Re4:plContextMenuでaccess violationエラー返信 削除
2019/4/30 (火) 07:40:16 Mr.XRAY
▼ Kuzeさん,どうもです.

> と条件を限定したほうがよさそうです。

あっ,この方がいいですね.
えっと,コンテキストメニューは...  814 か...


[12774] 修正版 UP !!返信 削除
2019/4/30 (火) 08:58:36 Mr.XRAY
> あっ,この方がいいですね.
> えっと,コンテキストメニューは...  814 か...


ということで修正版を UP 致しました.

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


[12775] Re:修正版 UP !!返信 削除
2019/4/30 (火) 17:29:24 Kuze
Mr.XRAYさん

早急な対応ありがとうございました。

▼ Mr.XRAYさん
> ということで修正版を UP 致しました.
>
> [ 814_コンテキストメニュー コンポーネント ]
> http://mrxray.on.coocan.jp/Delphi/plSamples/814_ContextMenu_DropSource.htm


INCM/CMT
Cyclamen v3.82