閲覧モードでの全角検索No.08666
MAIKU さん 18/04/03 12:04
 
閲覧モードで検索結果を表示する後述のマクロを作成しましたところ、
半角文字を検索する場合は問題なく使用できるのですが、
全角文字を検索するとキーを受付けなくなり強制終了が必要となります。
マクロコードに不適切な部分がありましたらご指摘頂けると幸いです。

キーアサイン
F: 検索キーワードの設定
N: 下候補表示
P: 上候補表示
ESC: 終了

コード
disablebreak;
browsemodeswitch;
while( 1 ) {
 #key = keypressed;
 if( #key == 0x1B ) break;    //Esc
 else if( #key == 0x46 ) {
  $s = input("キーワード?");
  searchdown $s;
 }
 else if( #key == 0x4E ) searchdown $s; //N
 else if( #key == 0x50 ) searchup $s; //P
}

[ ]
RE:08666 閲覧モードでの全角検索No.08667
h-tom さん 18/04/03 20:18
 

h-tom です。

>閲覧モードで検索結果を表示する後述のマクロを作成しましたところ、
>半角文字を検索する場合は問題なく使用できるのですが、
>全角文字を検索するとキーを受付けなくなり強制終了が必要となります。
>マクロコードに不適切な部分がありましたらご指摘頂けると幸いです。
試してみたら、インプットボックスを閉じる時に、IMEが有効なままだと、
それ以降、keypressed がうまくとれなくなりますね。
IME側に入力が取られているような感じです。

IMEが有効の場合、無効化するようにすると、全角文字でも大丈夫ですよ。

>キーアサイン
>F: 検索キーワードの設定
>N: 下候補表示
>P: 上候補表示
>ESC: 終了
>
>コード
>disablebreak;
>browsemodeswitch;
>while( 1 ) {
  //この辺りに追加
  if(imestate == 1) imeswitch;
> #key = keypressed;
> if( #key == 0x1B ) break;    //Esc
> else if( #key == 0x46 ) {
>  $s = input("キーワード?");
>  searchdown $s;
> }
> else if( #key == 0x4E ) searchdown $s; //N
> else if( #key == 0x50 ) searchup $s; //P
>}

[ ]
RE:08667 閲覧モードでの全角検索No.08668
MAIKU さん 18/04/04 07:17
 
ありがとうございます。

下記の追加で無事全角検索が
できるようになりました。

>  if(imestate == 1) imeswitch;


[ ]