マウス操作のためのウインドウに追加する

追加するランチャー。使用例。その3

テキストの文字を変換するものを作ってみる

使い方の使用例で便利なものを挙げたいところですが、
やっぱり思いつかないので、 前回と同じ様に TRR の使い方の方を説明したいので、そっちに傾倒したものを例として挙げます。

今回は テキスト の文字を変換する例を挙げます。

# #\ で囲んだ文字を取り除く

テキストの文字が # #\ で囲まれていたら、それを取り除くアイテムを以下に挙げます。

shapeTrim.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
&sendEndToTextEditExecutor3つについてです。

簡単に説明すると、
F_getTextEditExecutor() は、
実行した テキスト の文字列を返す関数です。

&outArgsToTextEditExecutorTextOut は、
実行した テキスト に引数の文字を出力する規定のコマンドです。

&sendEndToTextEditExecutor は、
実行した テキスト のカーソル位置を右端に移動する規定のコマンドです。

いずれも、 Executor の文字が名前に入っています。
一応、規定のコマンドや関数にこの文字が名前に入っていたら、実行元を意味する様になっています。

今回のスクリプトの処理は、
実行したテキストの文字を取得して、
その文字を変換し、
実行したテキストに変換した文字を上書きして
実行したテキストのカーソル位置を右端に移動する。
といった内容ということです。

後、先ほどの 3つのものは、 分割テキスト から使うと、フォーカスがある入力欄の影響を受けるようになっているので、 分割テキスト で使う場合も効果が期待できると思います。

ボタンから使ってみる

「追加するランチャー」にボタンとして登録します。
前回のように、 &sendScriptToText を使った処理で登録します。

テキスト1 に以下を記入して、

&sendScriptToText any shapeTrim
テキスト1で登録

のボタンを押して登録します。
ボタンの文字は、 シャープを取り除く とでもしておきます。

前回の様にスクリプトから登録するなら、

addButtonGui52_type2 シャープを取り除く
%exp52_tmpControlVar%_script = &sendScriptToText any shapeTrim

といったところでしょうか?

登録した後は、 テキスト に何かの アイテム名 を記入して、

シャープ(&3)

のボタンを使った後にでも試してみてください。

先程言ったように、 分割テキスト に対応する規定のコマンドと関数を使っているため、
分割テキスト で使っても、フォーカスがある入力欄上のみで動作すると思います。

画像

Executor の名前が付くものを使っているので、 「追加するランチャー」のGui上で動作しそうなものだと思う方もいるのではないでしょうか?

Executor の名前が付くものを使った場合、
「追加するランチャー」で動作させれば、本来そのGui上での動作をします。

ですが、今回の場合 &sendScriptToText を使って動作をさせているため、
shapeTrimアイテム内のスクリプトは、実行したテキストの方を実行元として判別させる事ができます。

今回の説明は以上です。
「追加するランチャー」の使用例とはあまり関係なかったかもしれませんが、先程挙げた
F_getTextEditExecutor()
&outArgsToTextEditExecutorTextOut
&sendEndToTextEditExecutor を使えば、
&parsentss のようなものを自作する事ができるのではないでしょうか?

ただ、あくまでそれっぽいのが作れるだけで、しっかりしたものを作るにはまだ色々改良が必要だと思います。

もっとも、しっかりしたものを作るという事を TRR でやる必要があるのかという話になってしまいますが。