【OnLayoutKeystroke】について豆知識です【FileMaker】

お世話になっております。
KK・Customizeの久保でございます。

今年も10月に入り、2021年も残すところあと3カ月となりました。
全国的にまん延防止が解除になり、外出できる時間が長くなりました。

コロナワクチンの接種がお済みの方もいらっしゃるかと思いますが、
引き続き、油断することなく不要不急の外出はなるべく控えていきましょう。

さて、今回は、スクリプトトリガにある「OnLayoutKeystroke」について
豆知識をお伝えしていきたいと思います。

本記事をきっかけに開発の幅が広がると幸いです。

【OnLayoutKeystroke】について

FileMakerのスクリプトトリガにある「OnLayoutKeystroke
こちらは、
”レイアウトまたはこのレイアウト上のオブジェクトでキー入力が行われ、OnObjectKeystrokeスクリプトトリガで処理が行われない際に実行される。”
とされています。

つまり、レイアウトにこのトリガを設置すれば、レイアウト上でキー入力を行ったタイミングで
指定した処理が走るということになります。

フィールドにトリガを設置すれば、フィールドの中でキー入力を行ったタイミングで
指定した処理が走ることになります。

Keystrokeは、上述した通り、キー入力を行ったタイミングで処理が走りますので、
指定する処理には注意が必要です。

例えば、IF文でどのキーが押されたのか判定し、適切な処理を走らせる必要があります。

しかし、このKeystroke、取得できないキーがございます。

取得できないキーについて

このKeystrokeでは、”ファンクションキー”を取得することができません。
正確には、「F2」以外のファンクションキーを取得することができなくなっております。

ファンクションキーには、そもそもそれぞれの役割があるためです。
例えば、「F1」はヘルプ、「F3」はズームの拡大、、、のように定められております。

キーボードの設定で、ファンクションキーの役割を解除することで利用できますが、
ファンクションキーは、よほどな理由がない限り、Keystrokeとして使用しない方がよいです。

Keystrokeの豆知識

ファンクションキーを取得することはできませんが、
数字キー(テンキー)を取得することはできます。

しかし、数字を入力する際にも使用するこの数字キーを、
Keystrokeとして利用すると数字を打つことができなくなってしまいます。

実は、Keystrokeは、「Shift」を一緒に使用することで
別のKeycodeとして取得することが出来ます。

例えば、
 1を押すと、”49″ が返ってきます。
 Shift + 1 を押すと、”33″ が返ってきます。

と、このようにShiftを加えることで別の処理として判断することが出来ますので、
クライアントでショートカットなどKeystrokeを利用したい場面では、
Shiftを一緒に使って頂く仕様にすることで実現できるかもしれません。

尚、「Shift + 0」はコードを取得できないことや、
全角の数字はコードを取得できないなど、
特定のキー条件で取得できないこともございますので、
利用する際は、デバッガで取得出来ているか調査してからにしましょう。

最後に

以上でございます。

FileMakerのご相談につきましては、
どんな些細なことでも構いません。

お問い合わせからお気軽にご相談くださいませ。

Follow me!