みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FM10です。
フィールド内の一部のテキストをマウスで選択した後、スクリプトの入ったボタンを押すとそのテキストを指定した色に変更したいです。
ネットで下記情報を仕入れました。
画面上にテキストボックスが複数あるという前提で説明します。
まず、画面に配置したテキストボックスにはそれぞれ名前を付けておいてください。
名前は、インスペクタパネルの[位置]タブの[名前]欄に入力します。
(1) 目的のテキストボックスがアクティブかどうかを検査します。
目的外のテキストボックスが文字選択されている可能性を
排除するためです。
判定は Get ( アクティブフィールド名 ) を使って判定します。
(2) 文字列選択が行われているかどうかを検査します。
目的のテキストボックスがアクティブでも、選択がない場合
もあるのでその可能性を排除します。
判定は Get ( アクティブ選択サイズ ) を使って判定します。
(3) 文字列の選択範囲がどこからどこまでなのかを求めます。
開始位置は、Get ( アクティブ選択位置 )
選択された文字数は Get ( アクティブ選択サイズ )
でわかります。
(4) フィールドの文字列を次のように分解します。
Str_A : 文字選択よりも前の文字列。
Str_B : 文字選択されている部分。
Str_C : 文字選択よりも後ろの文字列。
文字列の分解には、Middle ( ) を使います。
(5) 分解した3つの文字列を再連結して、元のフィールドに
書き込みます。
そのとき、Bの文字列には文字修飾を加えます。
文字修飾には TextColor ( ) を使います。
連結する式は、
Str_A & TextColor ( Str_B ; RGB ( 255 ; 0 ; 0 ) ) & Str_C
のようになります。(赤い色をつける場合)
(4), (5) は Replace ( ) 関数でも同じことができます。
なんとなくやりたいことは理解できるのですが、
如何せんこの情報からどのようにスクリプトを組んだらよいかが
サッパリ分かりません。
よろしくご指導くださいませ。
Offline
そのネットの情報とは若干異なりますが、以下のようにするといいかもしれません。
変数を設定 [ $Text ; 値: Get ( アクティブフィールド内容 ) ]
変数を設定 [ $選択サイズ ; 値: Get ( アクティブ選択サイズ ) ]
変数を設定 [ $開始位置 ; 値: Get ( アクティブ選択位置 ) ]
If [ IsEmpty ( $Text ) or $選択サイズ = 0 or IsEmpty ( $開始位置 ) ]
現在のスクリプト終了 [ テキスト結果: False ]
End If
変数を設定 [ $A ; 値: Middle ( $Text ; 1 ; $開始位置 - 1 ) ]
変数を設定 [ $B ; 値: Middle ( $Text ; $開始位置 ; $選択サイズ ) ]
変数を設定 [ $C ; 値: Middle ( $Text ; $開始位置 + $選択サイズ ; Length ( $Text ) ) ]
フィールド設定 [ $A & TextColor ( $B ; RGB ( 255 ; 0 ; 0 ) ) & $C ]
選択範囲を設定 [ 開始位置: $開始位置 ; 終了位置: $開始位置 + $選択サイズ - 1 ] Last edited by 通りすがりさん (2017-05-06 18:42:38)
通りすがりさんです。
Offline
Replace 関数 の場合はこんな感じかな・・・
https://www.youtube.com/watch?v=_W1hjZlSPic
変数を設定 [ $Text ; 値: Get ( アクティブフィールド内容 ) ]
変数を設定 [ $選択サイズ ; 値: Get ( アクティブ選択サイズ ) ]
変数を設定 [ $開始位置 ; 値: Get ( アクティブ選択位置 ) ]
If [ IsEmpty ( $Text ) or $選択サイズ = 0 or IsEmpty ( $開始位置 ) ]
現在のスクリプト終了 [ テキスト結果: False ]
End If
フィールド設定 [ Replace (
$Text ;
$開始位置 ;
$選択サイズ ;
TextColor (
Middle ( $Text ; $開始位置 ; $選択サイズ ) ;
RGB ( 255 ; 0 ; 0 )
)
)]
選択範囲を設定 [ 開始位置: $開始位置 ; 終了位置: $開始位置 + $選択サイズ - 1 ] Last edited by 通りすがりさん (2017-05-06 18:43:09)
通りすがりさんです。
Offline
通りすがりさんご回答ありがとうございます。
バッチリ解決できました。
もっと勉強します。
Offline
全く同じ事が過去のトピックでありました^^;;
テキスト選択部分のフォントカラーを変えるスクリプト
https://fm-aid.com/bbs2/viewtopic.php?id=5978
選択部分のみテキストの色を変える
https://fm-aid.com/bbs2/viewtopic.php?id=5256
フィールド内の選択されたテキストの色をショートカットで変更する
https://community.filemaker.com/docs/DOC-2460
Last edited by 通りすがりさん (2017-05-07 16:33:09)
通りすがりさんです。
Offline
Pages: 1
[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 558.62 KiB (Peak: 581.31 KiB) ]