ドット絵エディタを作る(アクション使うぞ編)

あぁ…アントニオバンデラスがかっこえぇぇ…
イタビューウィズバンパイアさいこー.マスクオブゾロさいこー.デスペラードもっとサイコー.


さて,今日はアクションを使うぞ!!

・・・ ていうか,アクションて何だ!?
どんなことができて,何が便利なんじゃろか?

感じたことを一言でいうと,「アクションを使うと,ユーザの操作に対するプログラムの呼び出しが一元管理できる」.

(;´Д`) おぁ〜.説明になってねぇーよ〜.
もっと日本語の勉強しよー.

具体的には,
 ・メニュー選択時
 ・ボタン(例えばツールバーのボタンとか)押したとき
 ・ショートカットキーを押したとき

なんかをまとめて扱うことができる.
つまり,上のどの操作をしても,「同じ関数が呼び出される」ようになる.
しかも,オブジェクトインスペクタで各オブジェクトの Action プロパティを変更するだけで!

そのうえ,ショートカットキーの設定も簡単だし.
これまた,オブジェクトインスペクタでらくらく設定可能.もうステキすぎ.
あと,キャプションとかヒントも「アクション」側を変更するだけでで, 関連するメニューやボタンのキャプションやヒントを自動的に更新することができて便利ぃー.
(ただ,キャプションが勝手に更新されるのは何かと不便だったりもしますが…)
さらに!そのアクションに関連するメニューやボタンの有効無効も,アクションを管理するだけで自動的に更新される!


でも,欠点…というか制限としては,

 ・アクションプロパティを持ってるオブジェクトにしか設定できない.
 ・アクションを発動可能なイベントがあらかじめ決められている.

というのがあるかな?
例えば,Actionプロパティを持たない「パネル」とかじゃ,基本的にアクションを使うことができないし, Actionプロパティを持ってるボタンでも,OnClickイベント以外ではアクションを発動できない.
(いやーホントはできるのかも知れないけど…やり方わかんねーです)

とはいえ,それぞれ標準的な動作に割り当てられてるので,そんなに困ることはないっすねぇ.実際.
とっても便利で,以外と簡単なので,バンバン使おう!アクション使おう!さぁ使おう! ホレホレ!


アクションを使う手順は,たったコレだけ.

 ・フォームにアクションリストを追加.
 ・そのアクションリストにアクションを追加.
  あとは,このアクションのプロパティをいじることで,ショートカットキーの設定とかできる.
 ・追加したアクションのイベント「OnExecute」のイベントハンドラを実装.
  ユーザの操作によって呼びだされるのが,このイベントハンドラになる.
 ・アクションを発動したいオブジェクトのActionプロパティにアクションを設定する.

うーん,簡単.マジで.


でも,一度だけ「アクション使えねぇ( ̄Д ̄)」とため息ついたことがあった.

それは,アクションリストを貼り付けたフォーム「以外の」フォームからアクションを呼び出そうとしたときだった.
だって,アクションリストはフォームのメンバになってるわけで…
そのアクションリストに対して外部からアクセスするには,リストが公開されてないといけないわけで…

それで,コピペしたらなんとかなるんじゃないかなーとか思って, アクションリストを他のフォームにコピペしちゃったからさぁ大変.
もはや修復不能.Undoでも戻らねー.
しょうがないので,無理やりアクセス用の関数作ったりしてみた.
アクションつかえねー.フォームが複数になるとやっぱりメンドイやん.


・・・
・・・
・・・と思ってたけど,オレのせいでした. バカにしてゴメンよDelphi,そしてAction.(TдT)
アクションリストをもつフォームのユニットを uses に追加したら,ちゃーんとオブジェクトインスペクタの Actionプロパティで設定できるようなりました!!
すっごーい♪ Delphi.



<< Back to Diary...