input関数No.39847
K'zawa さん 22/07/04 00:00
 
こんにちは、K'zawaです。

メモ帳でも秀丸でも半角スペースと濁点が結合することはないですが、input関数の
エディット部では結合したかのように、カーソルの動きでは1文字扱いになっていま
す。
スクリーンリーダーでは表示がどうなっているかは分かりませんが。

$s = "\x20\u3099";  // 半角スペースと濁点
$s = input( "Test", $s );

[ ]
RE:39847 input関数No.39849
秀丸担当 さん 22/07/04 09:37
 
input関数の入力ボックスは、Windows標準のエディットコントロールという部品にな
ります。
Windowsのバージョンなどによって動作が違ったりするかもしれません。

従来からあるメモ帳の本体の入力部分も同じエディットコントロールなので、input
関数と同様になるかと思ったのですが、なぜか違うようです。
メモ帳の検索ダイアログの入力はinput関数と同様のようでした。
メモ帳は、Windows11の最も最新のものは、今までとは違うエディットコントロール
ではないものになって、1つの文字とみなされるようです。

WindowsのバージョンやOSの違い、アプリごとの判断による違いは、最近ではICU(Int
ernational Components for Unicode)による判断に統一されつつあるようです。
秀丸エディタでは、一応マクロで以下のようにするとICUの判断に基づく一文字とし
て数える方法もあります。
moveto_gcu column_gcu + 1, lineno;
これが動作するのはWindows 10 Version 1903 以降になっています。
秀丸エディタ本体のカーソル移動はいまのところ従来通りです。

[ ]
RE:39849 input関数No.39850
K'zawa さん 22/07/04 11:51
 
秀丸担当さん、こんにちは。
K'zawaです。

ご説明ありがとうございました。
input関数のエディットはgcu文字単位とも違う場合があるようで、現状どうにもなら
ないことが分かりました。

[ ]