DisableDraw 時のページ移動関数についてNo.06801
かわした さん 02/02/24 22:34
 
かわしたです。

マクロ作成中に気づいたのですが、3枠区切りの場合 DisableDraw で
再描画を禁止すると NextPage2 や NextUnreadPage が失敗するのは
仕様でしょうか。

また、この場合 NextPage2 を実行してもページが進まないにも関わらず
返り値が 1(成功)となるのは仕様でしょうか。

次の未読メールをマクロで選択させようとして

while(1){
  ##np2 = dllfunc("NextPage2");
  if(!##np2) break;
}
##tmp = dllfunc("NextUnreadPage");

としたところ、ページが進まないのに ##np2 が 1 を返し続けるため
無限ループしてしまいました。

[ ]
RE:06801 DisableDraw 時のページ移動関数No.06805
秀まるお さん 02/02/25 14:00
 
 調べてみたら、たしかにNextPage系がうまく動作してませんでした。

 DisableDrawした状態だと、内部的にはウィンドウサイズが0x0となってまし
て、それで誤動作してました。DisableDrawしてる場合はウィンドウサイズ
(行数)が不明なので、とりあえず1行単位でカーソル移動するようにします。

 ちなみにそもそもの秀丸エディタでも、disabledrawした状態でのnextpage
系はダメみたいです。(秀丸担当に報告済み)

[ ]
RE:06805 DisableDraw 時のページ移動関数No.06809
かわした さん 02/02/25 16:59
 
かわしたです。早速の調査ありがとうございます。

欲を言えば3枠の本体側で実行した場合に

##tmp = dllfunc("DisableDraw");
##tmp = dllfunc("NextPage2");
##tmp = dllfunc("EnableDraw");

でも1ページ分移動しているのが理想なんでしょうけど

>DisableDrawしてる場合はウィンドウサイズ(行数)が不明なので、

ということなら仕方ないのでしょうね。

[ ]