検索ボックス内の検索ヒストリについてNo.29627
masa-yu さん 11/03/19 08:41
 
検索ボックス内のヒストリについて質問させていただきます。

検索処理のマクロを作成しています。検索ヒストリを残したくはないので、searchbu
ffer,searchoptionで検索前後のヒストリ、設定の初期化をしています。ツールバー
に検索ボックスを表示しなければ、検索ダイアログにてマクロで実施した検索処理が
ヒストリとして残存していないことを確認しています。

ところがツールバーに検索ボックスを表示していると、マクロで検索してヒストリを
初期化して終了させても、テキストウインドウ内からフォーカスを他に移して、また
戻した時点で、検索ボックス内は空白ですが、フォーカスを動かす直前の検索ヒスト
リができてしまいます。

マクロで検索ヒストリを消しても、フォーカスを動かしたはずみで検索ボックスがフ
ォーカスを動かす直前の検索バッファを拾っていると思うのですが、現状の解決策は
検索ボックス非表示しかない、ということでしょうか?バグではないかと思われます
ので解決方法をご教示願います。

[ ]
RE:29627 検索ボックス内の検索ヒストリにNo.29629
秀丸担当 さん 11/03/22 10:19
 

>ところがツールバーに検索ボックスを表示していると、マクロで検索してヒストリを
>初期化して終了させても、テキストウインドウ内からフォーカスを他に移して、また
>戻した時点で、検索ボックス内は空白ですが、フォーカスを動かす直前の検索ヒスト
>リができてしまいます。

報告ありがとうございます。
試してみたところ、確かにフォーカスをいったん検索ボックスに移し、その後テ
キスト部分にフォーカスを移動させると、そのタイミングで直前の検索した内容
がヒストリに入るようになっていました。
これは確かにバグでした。
次に公開するバージョンで修正させていただきます。

現状で回避するとしたら、マクロの最後に以下のような文を入れておくといいか
もしれません。

  beginsel;
  endsel;
  getsearch;

この問題は検索ボックスで入力後にEnterしたときにヒストリに入れるという処
理が関係していて、内部的に使用していた残留したバッファを参照している問題
があることがわかりました。
この文を実行することで、空の内容を検索文字列として取得してより確実にクリ
アできるかもしれないです。

[ ]
RE:29629 検索ボックス内の検索ヒストリにNo.29632
masa-yu さん 11/03/23 01:50
 
ありがとうございます。

マクロも暫定対応でうまくいきました。

[ ]