2015/1/8 (木) 11:17:15 Mr.XRAY |
▼ satoさん
>ShellListViewのアイテムの無い場所)に貼り付けようとして、
>右クリックするとポップアップメニューが出ないので、
例えば,次のようにすることで可能ではないかと.
//=============================================================================
// ShellListView1のOnMouseUpイベント処理
// ShellListView1のItemが選択されていない場合にもコンテキストメニューを表示
//
// ShellListView1のAutoContextMenuをFalseにして,コンテキストメニューの表示を
// 常にコードで行う方法も考えられる
//=============================================================================
procedure TForm1.ShellListView1MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight then begin
if ShellListView1.Selected = nil then begin
InvokeContextMenu(ShellListView1,
ShellTreeView1.SelectedFolder,
X,
Y);
end;
end;
end;
サンプル UP してみました.
動作確認は,Windows 7 U64(SP1) + Delphi 7 Pro です.
このサンプルでは,テキストファイルもダブルクリックで開きます.
ファイルメーカーは持っていないので未確認です.
TplContextMenu も配置してテストしましたが,開きます.
管理者権限で実行しても,一般ユーザで EXE を実行しても
開きました.
>ただnotepad.exeやFilemaker.exeのプロセスは起動しています。
これが気になりますね.
http://mrxray.on.coocan.jp/Delphi/zip/ShellComponent_D7.zip
|
|