みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
ポップオーバーに色々はまっています。
新規レコード追加で、ポップオーバーを表示し、そこにテキストにフィールドを配置してあります。文字を入力してエンターキーを押すことによってポップオーバーを閉じたいのですが、どうしたらよいですか?エンターキーを押したことを取得できれば良いのですが、そのやり方がわかりません。ポップオーバー内に配置したフィールドは、レイアウトモードではエンターキーで次のオブジェクトに移動を設定してあります。
よろしくお願いします。
Offline
FileMakerの場合、キーストロークというトリガがあるようです。
http://www.filemaker.co.jp/help/html/fu … 32.51.html
http://www.filemaker.co.jp/help/html/fu … 33.46.html
1:ポップオーバー内のテキストフィールドにスクリプトトリガ:OnObjectKeyStroke
2:スクリプト内
IF [Code ( Get ( トリガキー入力 ) ) = 10 or Code ( Get ( トリガキー入力 ) ) = 13]
ポップオーバーを閉じる
レコード確定(ダイアログ無)
End If
--補足1--
テンキー付キーボードなら、10=Enter Key, 13 = Return Keyがあり
トリガで動かした際に、微妙に動きが違ったりします。
私のキーボードは、テンキー側にEnter,文字側がReturnなんですが
キーボードによって逆とかあるのでしょうか?
ノートブックだとEnter , Returnのどちらかだと思うのですが、私デスクトップで解らないです。
この辺りはユーザーの用途に合わせて考える必要性がありそうです。
--補足2--
ちなみにReturn Keyだとテキスト入力してるときに改行したい場合も
スクリプトが走ってしまうので、必要に応じて削除して下さい。
ただ、こういう動きが微妙に違うものってどちらも同じ動きに出来る場合と出来ない場合が
出てくるので、あまりしないほうがいいかも。
またOnObjectKeyStrokeの場合?一文字入力するごとにスクリプトが走るようですが
システム的にそれっていいのでしょうか?
ん~解りません。
ポップオーバーに設けたフィールドの最前列に
透明のオブジェクトを置いて
複写処理のスクリプトに[ポップオーバーを閉じる]を追加するれば
キー入力判定しなくて簡単と思いますよ。
余談ですが
ファイルオプション→このファイルを開くことので最低バージョン=FM13に限定しないと
ポップオーバー意味有りませんよ(FM12では動作しませんから)
脱初心者を目指すもの さん、詳細な回答ありがとうございました。
>> IF [Code ( Get ( トリガキー入力 ) ) = 10 or Code ( Get ( トリガキー入力 ) ) = 13]
>> ポップオーバーを閉じる
>> レコード確定(ダイアログ無)
>> End If
なるほど、レコード確定がキモですね。
現在開発はノートで行っています。デスクトップも同じだと思うのですが、文字の右端にある大きなキーがリターンで、テンキーの右下にあるのがエンターですね。
今回の私の場合、入力するフィールドには改行はあり得ません。また、必ず日本語入力ONになっています。ですので、OnObjectKeyStrokeスクリプトが動くのは、日本語入力確定の時と、次のフィールドへ移動(ポップオーバーを閉じるとき)の2回ですので、とりわけ支障は無いかなと感じています。
おかげで、思うような制御が出来るようになりました。どうもありがとうございました。
追伸
「脱初心者を目指すもの」を改名されたほうがよいのでは?初心者の域をとうに脱しています。
Last edited by nice-guy (2014-08-16 18:22:32)
Offline
FM12始めたばかり さん、回答ありがとうございました。
>>ポップオーバーに設けたフィールドの最前列に
>>透明のオブジェクトを置いて
これはわかりますが、
>>複写処理のスクリプトに[ポップオーバーを閉じる]を追加するれば
複写処理といのはどういうことなのでしょうか?その点を教えて頂けませんか?
>>ファイルオプション→このファイルを開くことので最低バージョン=FM13に限定しないと
>>ポップオーバー意味有りませんよ(FM12では動作しませんから)
この点、理解しています。元々12で作ったファイルを13用に改変しています。ですので、ポップオーバーのような明らかに13の新機能だというのを盛り込みたいのです。オブジェクトを隠すは地味だけどすごく便利な機能なので、早速使っているのですが。地味なのです。
と言うのも、13の新機能てんこ盛りにして、会社で13を買ってもらう口実にしたいのです。
Offline
>複写処理のスクリプトに[ポップオーバーを閉じる]を追加するれば
説明不足ですみません(汗9
ポップオーバーで選択したフィールド値を代入する一連のスクリプトを
透過オブジェクトに割り当てなら、ポップオーバーを閉じる(FM13スクリプト)を使う方法もあると書いたつもりなのですが
FM12始めたばかり さん
なるほど、わかりました。どうもありがとうございました。
Offline
Pages: 1
[ Generated in 0.007 seconds, 10 queries executed - Memory usage: 518.27 KiB (Peak: 523.18 KiB) ]