初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2013-11-25 20:29:29

モンステラ
Guest

フィールド内でカーソルを左(右)に移動させるには

FMpro12
FMGo12
macOS10.8
です。

文章を入れるフィールドがあるのですが、数文字だけ訂正したいとき等にipadだと矢印キーがないので不便です。
定型文をいれるボタンやスクリプトでバックスペースキーは作ったのですが、カーソル移動させる方法がわかりません。
レイアウトにカーソル移動ボタンをおく方法がありませんでしょうか。
可能でしたら上下にも移動できるとありがたいです。

よろしくお願いします。

#2 2013-11-26 09:39:29

Layouter
Guest

Re: フィールド内でカーソルを左(右)に移動させるには

Goで同じになるかわからんけど、
選択範囲を設定 [終了位置: //-1で右、1で左 Let ( [  d=Get ( スクリプト引数 ) ;  s=Get ( アクティブ選択サイズ ) ;  p=Get ( アクティブ選択位置 ) ] ; Max ( 0 ; p + Case ( s and d=1 ; s ) + Case ( s ; 0 ; d ) - 1 ) )]

#3 2013-11-26 09:46:44

keima
Member

Re: フィールド内でカーソルを左(右)に移動させるには

たぶん指で何かするんだろうけど、指でしばらく押したままで拡大の状態にしてスライドするか、指2本そろえてスライドか。

Offline

#4 2013-11-26 22:47:40

モンステラ
Guest

Re: フィールド内でカーソルを左(右)に移動させるには

Layouterさん
アドバイスありがとうございます。
ご教示の通りFMproで先ず入れてみたところ
スクリプトステップ[選択範囲を設定]にして、
[開始位置]は無指定、
[終了位置]にlet以下を入力したのですが
当方の環境ではカーソルが動きませんでした。。

また
//-1で右、1で左
のコメントの意味も理解が及びませんでした。
このスクリプトで自動判別できる???
勘違いしていますでしょうか。

keimaさん
コメントありがとうございます。
フィールド数が多いために1画面でフィールドサイズが限られてしまうレイアウトになっていまして、それで指での操作が困難で。。というのが今回の機能を実装したい理由の一つです。

#5 2013-11-26 22:56:26

sc
Guest

Re: フィールド内でカーソルを左(右)に移動させるには

モンステラ wrote:

//-1で右、1で左
のコメントの意味

スクリプトパラメータで指定します

#6 2013-11-26 23:02:38

keima
Member

Re: フィールド内でカーソルを左(右)に移動させるには

ボタンやスクリプトでバックスペースキーは作ったのですが

これはどのようにされたのですか?

Offline

#7 2013-11-27 09:39:12

モンステラ
Guest

Re: フィールド内でカーソルを左(右)に移動させるには

Layouterさん
scさん

終了位置の指定を
「 //-1で右、1で左」もそのまま入力して実行しましたところ、今度は
どのカーソル位置でも右端にとんでしまいました。

keimaさん
バックスペースのスクリプトは掲示板から参照させて頂いたものです
--------
選択範囲を設定[開始位置:Get(アクティブ選択位置)-1;終了位置:Get(アクティブ選択位置)-1]
消去[]
---------

何とぞよろしくお願いします。

#8 2013-11-27 10:03:03

Layouter
Guest

Re: フィールド内でカーソルを左(右)に移動させるには

スクリプトステップをコピペしたので、改行が無くなってわかりにくくなってしまいましたが、式はLetの後でいいんです。
Let ( [
  d=Get ( スクリプト引数 ) ;
  s=Get ( アクティブ選択サイズ ) ;
  p=Get ( アクティブ選択位置 )
] ;
Max ( 0 ; p + Case ( s and d=1 ; s ) + Case ( s ; 0 ; d ) - 1 )
)

ボタン設定のスクリプト選択時に、下にある「スクリプトパラメータ」のところに、右ボタンなら-1、左ボタンなら+1を入れるという意味。

#9 2013-11-27 13:57:41

モンステラ
Guest

Re: フィールド内でカーソルを左(右)に移動させるには

Layouterさん

ありがとうございます、できました!
ちょっと感動しますね!

Goでも確認できました。画面をロックすれば連打でもいけます、ありがとうございます。

あとはスクリプトの内容がいまいち把握できていないので、勉強のために一つ一つ調べたいと思います。

#10 2013-11-27 16:11:28

Layouter
Guest

Re: フィールド内でカーソルを左(右)に移動させるには

>右ボタンなら-1、左ボタンなら+1
左右が逆orz

Max ( 0
0未満になると右端へ行くので防止
Case ( s and d=1 ; s )
選択範囲があって左へ移動する場合、選択範囲の先頭でなく末尾を基準に
Case ( s ; 0 ; d )
選択範囲がある場合はその両端に設定する。ない場合は移動する。
-1
カーソルが先頭の文字の左にあるときにGet ( アクティブ選択位置 )が1を返してくるので、そのまま「選択範囲を設定」に使うと右に進んでしまう

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 560.37 KiB (Peak: 579.74 KiB) ]