Hatena::Groupnadesiko

はてなこ このページをアンテナに追加 RSSフィード

2013-12-17

左クリックでポップアップメニュー

| 19:56 | 左クリックでポップアップメニュー - はてなこ を含むブックマーク はてなブックマーク - 左クリックでポップアップメニュー - はてなこ

ポップアップメニューはマウスの右クリックで表示するメニューですが、イメージ部品等に設定した場合、左クリックに何のイベントも設定してない場合、左クリックでポップアップメニューが出ると便利だな。と、思い作ってみました。

考え方

1.左クリックされたら右クリックする方法を考える。
これは「マウス右クリック」という命令があるのでこれを使います。

2.右クリックは逆に表示させない
ポップアップメニューはキーボードのESCキーで閉じることが出来るので、「キー送信」命令を使って右クリックで表示させないようにできる。

3.左クリックで右クリックさせると2の作用で表示されない
フラグを用意して、どっちのクリックか判断する。

作ったサンプル

ここから
マウスフックとは整数変数

マウスポップアップとはポップアップメニュー
マウスポップアップに『
,黄色メニュー,黄色,,,テストイメージ黄色画面クリア
,緑色メニュー,緑色,,,テストイメージ緑色画面クリア
,青色メニュー,青色,,,テストイメージ青色画面クリア
,赤色メニュー,赤色,,,テストイメージ赤色画面クリア
』をポップアップメニュー一括作成

テストイメージとはイメージ
これ赤色画面クリア
ポップアップメニューはマウスポップアップ
のマウス離した時は~左ポップアップ #●

●左ポップアップ
  もしイベント部品→押されたボタンが「左」ならば
    マウスフックはオンオンでESCキーをやめさせる
    マウス右クリック	#マウスを右クリックさせる命令
  もしイベント部品→押されたボタンが「右」ならば
    もし、マウスフックならば、マウスフックはオフ
    違えば、『{ESC}』をキー送信	#左クリックから来てるので表示をやめさせる
#ここまで

イベント「マウス離した時は~」がある部品であれば動くと思います。
イベントはエディタGUIタブの部品で確認出来ます。
※右クリックを連打するとたまにチラッとメニュー表示されることがあります

2013-11-12

タスクトレイバルーン

| 18:30 | タスクトレイバルーン - はてなこ を含むブックマーク はてなブックマーク - タスクトレイバルーン - はてなこ

はじめに

ブログは過去何も挫折し、とても苦手です。しかし、なでしこは2005年に出会い、まで使ってきたので、なでしこネタなら続くかもしないと思い始めてみます。なでしこで疑問に思ったことを短くメモ程度に、たまに更新できたらいいなと思います。

さて、

「タスクトレイバルーン」命令はどんなもんかと調べたら、リファレンスやエディタの説明が不足してて使い方が分からなかったため、試行錯誤でサンプルを作ってみました。

追記(2014/01/06): 1.540でタイトル無しが追加されたので修正加筆しました

ここから
母艦のタスクトレイ表示
風船アイコンとは配列=「タイトル無し{~}アイコン無し{~}通知アイコン{~}警告アイコン{~}エラーアイコン{~}アプリケーションアイコン」
風船アイコンで反復
  風船[回数-1]をボタンとして作成
  風船[回数-1]は対象
  風船[回数-1]→タグは回数-1
  風船[回数-1]→Wは200
  風船[回数-1]→クリックした時は~
    TXTは自身→テキスト
    NUMは自身→タグ
    母艦のタスクトレイバルーンオプションは風船アイコン[NUM]	//★アイコンの設定
    TXTを母艦のタスクトレイバルーン表示			//★バルーン表示
NNは風船アイコンの要素数-1

閉じるボタンとはボタン
の位置は風船[0]→右側
のHは風船[NN]→Y+風船[NN]→H-のY
のクリックした時は~母艦のタスクトレイバルーン非表示		//★バルーン非表示

母艦のクライアントWは閉じるボタンのX+閉じるボタンのW+10
母艦のクライアントHは風船[NN]→Y+風船[NN]→H+10
母艦中央移動ここまで

バグ報告掲示板に投稿しましたが、「アプリケーションアイコン」が1度しか表示できません。 2014/01/06現在このバグは解決しています。

これで、なでしこを少しでもかじっていれば、使い方が分かるかと思います。

参考: https://nadesiko.googlecode.com/svn-history/r306/trunk/vnako_unit/vnako_function.pas