input関数・複数行の入力ボックスのときNo.39851
K'zawa さん 22/07/06 10:31
 
こんにちは、K'zawaです。

input関数で複数行の入力ボックスを指定したとき、上下キーで行移動できるように
はならないでしょうか?

[ ]
RE:39851 input関数・複数行の入力ボックNo.39852
秀丸担当 さん 22/07/06 11:56
 
複数行の入力ボックスでは、カーソル上下キーで入力ボックス内の行を上下に移動で
きます。
というのはごく普通の操作のことなので、何か意味を取り違えている気がします。
詳しい状況を具体的に教えてもらえると助かります。

[ ]
RE:39852 input関数・複数行の入力ボックNo.39853
K'zawa さん 22/07/06 14:55
 
秀丸担当さん、こんにちは。
K'zawaです。

左右やHome,Endでは動けますが、上下は移動できないのですが、何か誤りがあるでし
ょうか?

$s = "あ\nい\nう\nえ\nお";
$s = input( "Test", $s, 0x0100 );


秀丸エディタ Version 9.16 Beta 6 32bit edition

[ ]
RE:39853 input関数・複数行の入力ボックNo.39854
秀丸担当 さん 22/07/06 16:29
 
詳しいことありがとうございます。
改行が\nであらかじめパラメータで指定されている場合、確かにそうなっていました。
改行1つを、\r\nの2文字(\x0D\x0Aと同じ)で表さないとだめでした。

V9.16βの場合は、strreplaceで置換ができます。
$s = "あ\nい\nう\nえ\nお";
$s = strreplace($s,"\n","\r\n");
$s = input( "Test", $s, 0x0100 );
endmacro;

V9.15の場合は、splitとjoinを組み合わせて置換ができます。
$s = "あ\nい\nう\nえ\nお";
#c = split( $array, $s, "\n" );
$s = join( $array, #c ,"\r\n" );
$s = input( "Test", $s, 0x0100 );
endmacro;

検索ダイアログの入力欄を複数行にしている場合は、そのあたりを自動的にしていた
のですが、inputはエディットコントロールの判断そのままでした。

自動的にしてもいいかもしれないですが、もしかしたらTSV/CSVモードの1つのセル
の中の改行を変換して、結果をまた変換して戻すという用途で使われるかもしれない
ので、そのあたりデリケートかもしれないです。
ヘルプに\r\nや置換の方法のことを書いておこうと思います。

[ ]
RE:39854 input関数・複数行の入力ボックNo.39855
K'zawa さん 22/07/06 20:02
 
秀丸担当さん、こんにちは。
K'zawaです。

分かりました。
ありがとうございました。

[ ]