検索時のWindow表示方法と選択範囲についNo.10446
CUB さん 01/11/27 08:58
 
フォーラムの皆様、はじめまして
FAQかもしれませんが、みつけられなかったので教えて下さい。

マクロである文字を検索して、その文字を消そうとしたのですが、
showwindowの値により結果が違ってしまいます。

 マクロを実行するデータ
    AAAAbbCCCC

 マクロ
    showwindow 3;            <---ここが質問の表示方法です。
      gofiletop;
      searchdown "bb";
      if( ! result )  goto aaa;
      delete;
      delete;
   aaa:
   showwindow 1;

 表示方法が1,3の場合
    結果:AAAACCCC
 表示方法が0,2の場合
    結果:AAAACCC

どうも検索した結果が選択されたりされなかったりするみたいです。
今は
      searchdown "bb";
      if( ! result )  goto aaa;
      beginsel;
      right 2;
      delete;
で、逃げています。
はじめの使い方は間違っているのでしょうか?

[ ]
RE:10446 検索時のWindow表示方法と選択範No.10447
TAKA さん 01/11/27 12:38
 
CUBさん、はじめまして。TAKA と申します。

>マクロである文字を検索して、その文字を消そうとしたのですが、
>showwindowの値により結果が違ってしまいます。

ようやく再現方法が分かりました。
これは、以下の条件で再現可能です。
「その他→動作環境→ユーザーインターフェース→検索での表示」
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
を「点滅表示」にした場合に、この現象が出ます。
^^^^^^^^^^^^^^^^^^^^^^^

「範囲選択」の場合は、意図通り(CUBさんの意図とは違うと思う
が、正しい動作)、一回目のdeleteで「bb」が消えます。

「点滅表示」の場合は、一回目のdeleteで「b」しか消えてはいけ
ないのに、アイコン化状態で検索と削除を行うと範囲選択の状態と
誤認識されて「bb」が消えてしまいます。

Ver3.11β10でもこの現象を確認。

この現象は「点滅表示」にした状態で、以下の2つのマクロを実行
      ^^^^
することで、確認できます。

確認出来るでしょうか? > 秀丸担当さん

// このマクロは意図と違う動作をする
// テストマクロ(ここから)
    showwindow 2;
    gofiletop;
    // 「点滅表示」の状態で、アイコン化で検索削除すると、だめ
    searchdown "bb";
    if( ! result )  goto aaa;
    delete;
    delete;
aaa:
    showwindow 1;
    endmacro;
// テストマクロ(ここまで)

// このマクロは意図通りの動作をする。
// テストマクロ(ここから)
    showwindow 2;
    gofiletop;
    searchdown "bb";
    if( ! result )  goto aaa;
    // ここでアイコン化を解除するとOKになる。
    showwindow 1;
    delete;
    delete;
aaa:
    showwindow 1;
    endmacro;
// テストマクロ(ここまで)


>はじめの使い方は間違っているのでしょうか?

厳密に言えば、だめです。何故だめかと言うと、もうお気づきだと
思いますが、「その他→動作環境→ユーザーインターフェース→検
索での表示」の設定によって動作が異なるからです。

環境に依存しないで正常に動作させるには、以下のようにする必要
があります。
Windowをアイコン化や最大表示にする目的が分からなかったので、
書き換えの禁止を使用してマクロ実行状態が見えないようにしまし
た。
#本当は、それが目的?

他にも、環境を強制的に書き換える方法もありますが、あまりお勧
めは出来ませんので、ここでは書きません。

// テストマクロ(ここから)
    disabledraw;
    escape;     // 範囲選択解除
    gofiletop;
    searchdown "bb";
    if( !result )   goto aaa;
    beginsel;
    right 2;
    delete;
aaa:
    enabledraw;
    endmacro;
// テストマクロ(ここまで)


今回の不具合で、アイコン化の処理の部分に手を加えると思います
が、「#09992 01/10/15」の
>nexthidemaruicon,prevhidemaruicon系では制御を移しません。
>しかしあまり意味が無いので仕様を変えてもいいかもしれません。
が、ついでの対応で可能であれば、よろしくお願いします。 > 秀丸担当さん

[ ]
RE:10447 検索時のWindow表示方法と選択範No.10456
秀丸担当 さん 01/11/28 16:36
 
>ようやく再現方法が分かりました。
>これは、以下の条件で再現可能です。
>「その他→動作環境→ユーザーインターフェース→検索での表示」
>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>を「点滅表示」にした場合に、この現象が出ます。
>^^^^^^^^^^^^^^^^^^^^^^^
>

こちらでも再現することができました。
TAKAさんの言われている通りで、アイコン状態と非表示状態では
動作環境の「検索での表示」が反映されていないような感じです。
バグと思われるので調査しておきます。

[ ]
RE:10447 検索時のWindow表示方法と選択範No.10463
CUB さん 01/11/28 18:37
 
環境設定によって、うまく動かない場合があるのは
問題がありますね。再度選択をしなおして削除するように
します。

Windowを小さくしたのは、描画しないほうが早く動いた
からで、disabledraw;の方が良かったと思います。

    ありがとう御座いました。

[ ]