マウス操作のためのウインドウに追加する
追加するランチャー。使用例。その3
テキストの文字を変換するものを作ってみる
使い方の使用例で便利なものを挙げたいところですが、
やっぱり思いつかないので、
前回と同じ様に
TRR
の使い方の方を説明したいので、そっちに傾倒したものを例として挙げます。
今回は テキスト の文字を変換する例を挙げます。
# #\ で囲んだ文字を取り除く
テキストの文字が # #\ で囲まれていたら、それを取り除くアイテムを以下に挙げます。
V_var1 := F_getTextEditExecutor()
StringRight, V_var2, V_var1, 1
if( V_var2 == "\" ){
StringTrimRight, V_var1, V_var1, 1
}
V_var1 := Trim( V_var1, "#" )
&outArgsToTextEditExecutorTextOut %V_var1%
&sendEndToTextEditExecutor
%--
このスクリプトを使って紹介しておきたいのは、
F_getTextEditExecutor()
と
&outArgsToTextEditExecutorTextOut
と
&sendEndToTextEditExecutor
の
3つについてです。
簡単に説明すると、
F_getTextEditExecutor()
は、
実行した
テキスト
の文字列を返す関数です。
&outArgsToTextEditExecutorTextOut
は、
実行した
テキスト
に引数の文字を出力する規定のコマンドです。
&sendEndToTextEditExecutor
は、
実行した
テキスト
のカーソル位置を右端に移動する規定のコマンドです。
いずれも、
Executor
の文字が名前に入っています。
一応、規定のコマンドや関数にこの文字が名前に入っていたら、実行元を意味する様になっています。
今回のスクリプトの処理は、
実行したテキストの文字を取得して、
その文字を変換し、
実行したテキストに変換した文字を上書きして
実行したテキストのカーソル位置を右端に移動する。
といった内容ということです。
後、先ほどの 3つのものは、 分割テキスト から使うと、フォーカスがある入力欄の影響を受けるようになっているので、 分割テキスト で使う場合も効果が期待できると思います。
ボタンから使ってみる
「追加するランチャー」にボタンとして登録します。
前回のように、
&sendScriptToText
を使った処理で登録します。
テキスト1 に以下を記入して、
のボタンを押して登録します。
ボタンの文字は、
シャープを取り除く
とでもしておきます。
前回の様にスクリプトから登録するなら、
addButtonGui52_type2 シャープを取り除く
%exp52_tmpControlVar%_script = &sendScriptToText any shapeTrim
といったところでしょうか?
登録した後は、 テキスト に何かの アイテム名 を記入して、
のボタンを使った後にでも試してみてください。
先程言ったように、
分割テキスト
に対応する規定のコマンドと関数を使っているため、
分割テキスト
で使っても、フォーカスがある入力欄上のみで動作すると思います。
Executor の名前が付くものを使っているので、 「追加するランチャー」のGui上で動作しそうなものだと思う方もいるのではないでしょうか?
Executor
の名前が付くものを使った場合、
「追加するランチャー」で動作させれば、本来そのGui上での動作をします。
ですが、今回の場合
&sendScriptToText
を使って動作をさせているため、
shapeTrim
のアイテム内のスクリプトは、実行したテキストの方を実行元として判別させる事ができます。
今回の説明は以上です。
「追加するランチャー」の使用例とはあまり関係なかったかもしれませんが、先程挙げた
F_getTextEditExecutor()
と
&outArgsToTextEditExecutorTextOut
と
&sendEndToTextEditExecutor
を使えば、
&parsentss
のようなものを自作する事ができるのではないでしょうか?
ただ、あくまでそれっぽいのが作れるだけで、しっかりしたものを作るにはまだ色々改良が必要だと思います。
もっとも、しっかりしたものを作るという事を TRR でやる必要があるのかという話になってしまいますが。