◇ %joybuttonex でジョイスティックのボタンの一部を読み取れない
Q:ジョイスティックの押されたボタンを読み取ろうとして
if (> %joybuttonex 0) (message %joybuttonex)
としても、ボタン1・2に反応してくれません。他のボタンは正常に読み取れるのですが。
A:KMmacro は Delphi というプログラム言語で作っており、KMmacro で扱う「整数」は、「Delphi 言語の整数型」で扱えるものになります。
実は、Delphi の整数型では「12桁の整数」は、数字が大きすぎて扱うことができません。%joybuttonex はボタン数が増えて 12個(つまり12桁)になってしまったため、これを「文字列を整数化する」段階でエラーになってしまいます(そしてエラー時には、内部では「0」を返すようにしている)。そのため、「(> %joybuttonex 0)」ではうまく判定できないのです。
少々面倒ですが、
if (<> %joybuttonex "000000000000") (message %joybuttonex)
としてください。これなら、整数化せず文字列のままで比較しているので、エラーが起こりません。
なお、%joybutton は8桁ですので、こうした問題は起きません。