今回は,ポップアップメニューを作成し,そこからform2を呼び出すようにしてみます。
「ポップアップメニュー」コンポーネントは,画面右下にある「ツールパレット」の「standard」の上から3番目にありますので,それをform1に貼り付けます。
その後,form1に貼り付けた[PopupMenu1]をダブルクリックすると,メニューを入力するウインドウが開きますので,そこでポップアップメニューに表示させたいメニューを入力していきます。
このメニューにはform2を開くための「設定」と終了があれば良いのですが,それだけだとつまらないので,次の月や前の月を表示できるように,「次の月」,「前の月」のメニューも作っておきます。
上の図では途中で区切り線が入っていますが,区切り線は,半角で「-」を入力すればできます。
ポップアップメニューを作成したら,マウスの右クリックでポップアップメニューを呼び出せるようにします。
ポップアップメニューを呼び出すときには,ポップアップメニューを表示させる座標を入力しないといけません。これをMouseClickイベントハンドラで行おうとすると,マウスを押したときの座標がわからないので,MouseDownイベントハンドで呼び出すようにします。
ここでは,Image1MouseDownイベントハンドラを呼び出し,そこに記述します。
ここまで記述したら,実行してみます。
実行してカレンダーが表示されたら,適当な場所で右クリックするとポップアップメニューが表示されると思います。
このとき,form2を作成した後,最初に実行すると,「form2との関連づけを行いますか?」といったメッセージが出ると思いますので,「はい」をクリックしてください。
次にポップアップメニューの,それぞれのメニューの設定をしていきます。
この回の最初に載せた図に,「次の月」,「前の月」…などが書かれていますが,それをダブルクリックすると,N1ClickやN2Clickなどのイベントハンドラが作成されますので,そこに下のようなソースを記述します。
上記のプログラムソースを入力して実行すると,右クリックでポップアップメニューが開き,「次の月」,「前の月」をクリックするとカレンダーの表示が変わり,「設定」をクリックするとform2が表示されると思います。
ちなみに,form2を開くときに,「Showmodal」というのを使いましたが,これは「Show」でform2を開いた場合にはform1をクリックするとform2はform1の後に隠れてしまいますが,「Showmodal」でform2を開くとform1をクリックしてもform2が後に隠れることがありません。
次回は,カレンダーの周りにある枠をなくして,見栄えをよくしてみます。