前回の続きです。
QPopupMenuコンポーネントを使用します。
ツールパレットからQPopupMenuコンポーネントを選択し、フォームに配置します。

オブジェクトインスペクタでQPopupMenu1のImagesプロパティを「ImageList1」に設定します。

QMainMenu1のメニューの項目を、QPopupMenu1にコピーします。
オブジェクトインスペクタでQMainMenu1のItemsプロパティの値をコピーします。

オブジェクトインスペクタでQPopupMenu1のItemsプロパティの値に貼り付けます。


ツールパレットからQButtonを選択し、フォームに配置します。

オブジェクトインスペクタでQButton1のPopupMenuプロパティを「QPopupMenu1」に設定します。

メニューの「実行」-「実行」を選択して実行します。

ボタンを右クリックすると、ポップアップメニューが表示されます。


QPopupMenu1にOnClickイベントを追加します。

QPopupMenu1Click関数が作成されます。
QPopupMenu1Click関数の処理を記述します。
function QPopupMenu1Click($sender, $params)
{
var_dump($params);
}
メニューの「実行」-「実行」を選択して実行します。

メニューの「開く」「閉じる」をクリックします。

「開く」をクリックしたときの出力。
array
'tag' => string '1' (length=1)
「閉じる」をクリックしたときの出力。
array
'tag' => string '2' (length=1)
QPopupMenu1にJavaScriptのOnClickイベントを追加します。

QPopupMenu1JSClick関数が作成されます。
QPopupMenu1JSClick関数の処理を記述します。
function QPopupMenu1JSClick($sender, $params)
{
?>
//begin js
tag=event.getTarget().tag;
alert(tag);
//end
<?php
}
メニューの「実行」-「実行」を選択して実行します。

メニューの「開く」「閉じる」をクリックします。

「開く」をクリックしたとき、Tagの値である「1」が出力されます。

「閉じる」をクリックしたとき、Tagの値である「2」が出力されます。

以上です。
DelphiやC++Builderと同じような操作感でメインメニューやポップアップメニューを簡単に作成することができました。
作成されたメインメニューやポップアップメニューも、Windowsアプリケーションと同じように操作することができます。



Pingback: RadPHP XEのQMainMenuコンポーネントとQPopupMenuコンポーネントを使ってみた(前編) « 山本隆の開発日誌