【確認】あとで送信時の画面ちらつきにつNo.03232
TATE2 さん 12/03/12 16:01
 
秀まるおさん

TATEです。

最近のβ版ですが、メールを作成して「あとで送信」とすると
従来に比べて、何やら画面のちらつきが気になります。
何やら描いているようですが不明です。

何か変更が加わったのでしょうか?

環境:WindowsXP+ATOK2012+IE6
秀丸メール5.75β5

[ ]
RE:03232 【確認】あとで送信時の画面ちらNo.03233
秀まるお さん 12/03/12 17:21
 
 一応、特にこれといっていじったつもりは無いですが、秀丸エディタ相当部分
がV8.13βの改良を秀丸メールにも入れてしまってるので、それで何か動作が変
わってる可能性はあります。

 改良箇所は、秀丸エディタのβ版改版履歴に入ってること全部なので、「何か
変わった点は…」といわれたら、いっぱいあります。

 何かマクロを自動起動しての話だとしたら、そのマクロの具体的にどの処理で
ちらつくのか等解析しないといけないです。

[ ]
RE:03233 【確認】あとで送信時の画面ちらNo.03234
TATE2 さん 12/03/12 18:10
 
TATEです。

漠然とした質問をしてしまい恐縮です。
自動起動しているのは、以前、ご提供いただきました
日付曜日チェックのマクロが走っているだけです。

ちらつくというのは、2枠を使っているのですが、あとで
送信を押した時にエディタのウィンドウがスパッと消える
のではなく、なにか上に向かってずるずるって消えていく
イメージです。
(うまく表現ができずすいません)

また、現象を動画で撮れればお送りすることにします。


[ ]
RE:03234 【確認】あとで送信時の画面ちらNo.03235
秀まるお さん 12/03/12 23:54
 
 いろいろ並行して仕事してて半分頭の中がパニくってるので、具体的に何の
マクロで起きるのか、すみませんが、「×××番発言のマクロ」とか、うちの
ライブラリの物でしたらそれのURL等、あるいはどれにも該当しない場合は具体
的なマクロの中身をここに書き込んで欲しいです。

 一週間以上前のことは忘れてしまってまして…、年なもので。

 ウィンドウの中身がちらつくのでしたら、とりあえずdisabledrawで回避可能
なのかとは思いますけども、最近のβ版で起きるようになったのなら、何かのレ
ベルダウンかもしれないし、テストしてみないとよく分からないです。

 (テストしても分からないかもしれませんが)

[ ]
RE:03235 【確認】あとで送信時の画面ちらNo.03236
TATE2 さん 12/03/13 08:23
 
TATEです。

こちらの配慮不足で申し訳ありません。
以下にマクロを貼り付けますので、よろしくお願いします。


    #xStart = x; #yStart = y;
    #readonly = readonly;
    #browsemode = browsemode;
    if( #browsemode ) {
        browsemodeswitch;
    }
    gofiletop;
    searchdown2 "(?<=^|[^0-9])[0-9]+/[0-9]+([日月火水木金土])", reg
ular;
    if( !result ) {
        if( #browsemode ) {
            browsemodeswitch;
        }
        moveto #xStart, #yStart;
        endmacro;
    }
    if( #readonly ) {
        readonlyswitch;
    }
Loop:
    #x = x; #y = y;
    beginsel;
    golineend2;
    tohankaku;
    $text = gettext( #x, #y, x, y );
    undo;
    moveto #x, #y;
    if( #readonly ) {
        readonlyswitch;
    }
    if( #browsemode ) {
        browsemodeswitch;
    }
    loaddll "hmjre.dll";
    #n = dllfunc("FindRegular"
                , "([0-9]+)/([0-9]+)\\(([日月火水木金土])\\)"
                , $text, 0);
    if( #n != 0 ) {
        endmacro;
    }
    $month = leftstr($text, dllfunc("GetLastMatchTagLength",1));
    $day = midstr($text, dllfunc("GetLastMatchTagPosition",2)
                    , dllfunc("GetLastMatchTagLength",2));
    $week = midstr($text, dllfunc("GetLastMatchTagPosition",3)
                    , dllfunc("GetLastMatchTagLength",3));
    #month = val($month);
    #day = val($day);

    loaddll "tkinfo.dll";
    #yearNow = val( dllfuncstr("CurrentDate","YYYY" ) );
    #monthNow = val( dllfuncstr("CurrentDate","M" ) );
    if( #month < #monthNow ) {
        #yearNow = #yearNow + 1;
    }
    $mon[1] = "Jan";
    $mon[2] = "Feb";
    $mon[3] = "Mar";
    $mon[4] = "Apr";
    $mon[5] = "May";
    $mon[6] = "Jun";
    $mon[7] = "Jul";
    $mon[8] = "Aug";
    $mon[9] = "Sep";
    $mon[10] = "Oct";
    $mon[11] = "Nov";
    $mon[12] = "Dec";
    $date = str(#day) + " " + $mon[#month] + " " + str(#yearNow)
         + " 00:00:00 +0900";
    $week2 = dllfuncstr("FormatDate", $date, "W" );
    if( $week2 != $week ) {
        message "曜日が違います。正しい曜日 = " + str(#month) + "/" +
        str(#day)
                 + "(" + $week2 + ")";
        #n = dllfunc("SetCancel", 1);
        endmacro;

    }

    searchdown "(?<=^|[^0-9])[0-9]+/[0-9]+([日月火水木金土])", regu
lar;
    if( result ) {
  goto Loop;

[ ]
RE:03236 【確認】あとで送信時の画面ちらNo.03237
秀まるお さん 12/03/13 11:41
 
 このマクロのやってることは、カーソルをメール本文先頭に移動して日付文字
列を検索するだけなので、日付文字列があればその個数分だけ画面がちらついて、
日付文字列が無ければ何もちらつかずに終了するってことなんだと思います。

 なので、もともと以前からちらついてるはずだと思います。

 以前と比べてちらつくようになったとしたら、たまたま日付文字列がいっぱい
あってちらついてるだけのような気がしますけども…。

 ウィンドウの中身がスクロールしてちらついてるだけでしたら、それはそれで
その通りの動作になって仕方がないと思います。なめらかスクロールの設定がON
だともっとちらつくとかあるかもしれませんけども。

 マクロをdisabledraw/enabledrawで囲んでやればいいかと思います。

    #xStart = x; #yStart = y;
    #ytop = screentopy;
    disabledraw;
    #readonly = readonly;
    #browsemode = browsemode;
    if( #browsemode ) {
        browsemodeswitch;
    }
    gofiletop;
    searchdown2 "(?<=^|[^0-9])[0-9]+/[0-9]+([日月火水木金土])"
              , regular;
    if( !result ) {
        if( #browsemode ) {
            browsemodeswitch;
        }
        moveto #xStart, #yStart;
        enabledraw #ytop;
        endmacro;
    }
    if( #readonly ) {
        readonlyswitch;
    }
Loop:
    #x = x; #y = y;
    beginsel;
    golineend2;
    tohankaku;
    $text = gettext( #x, #y, x, y );
    undo;
    moveto #x, #y;
    if( #readonly ) {
        readonlyswitch;
    }
    if( #browsemode ) {
        browsemodeswitch;
    }
    loaddll "hmjre.dll";
    #n = dllfunc("FindRegular"
                , "([0-9]+)/([0-9]+)\\(([日月火水木金土])\\)"
                , $text, 0);
    if( #n != 0 ) {
        endmacro;
    }
    $month = leftstr($text, dllfunc("GetLastMatchTagLength",1));
    $day = midstr($text, dllfunc("GetLastMatchTagPosition",2)
                    , dllfunc("GetLastMatchTagLength",2));
    $week = midstr($text, dllfunc("GetLastMatchTagPosition",3)
                    , dllfunc("GetLastMatchTagLength",3));
    #month = val($month);
    #day = val($day);

    loaddll "tkinfo.dll";
    #yearNow = val( dllfuncstr("CurrentDate","YYYY" ) );
    #monthNow = val( dllfuncstr("CurrentDate","M" ) );
    if( #month < #monthNow ) {
        #yearNow = #yearNow + 1;
    }
    $mon[1] = "Jan";
    $mon[2] = "Feb";
    $mon[3] = "Mar";
    $mon[4] = "Apr";
    $mon[5] = "May";
    $mon[6] = "Jun";
    $mon[7] = "Jul";
    $mon[8] = "Aug";
    $mon[9] = "Sep";
    $mon[10] = "Oct";
    $mon[11] = "Nov";
    $mon[12] = "Dec";
    $date = str(#day) + " " + $mon[#month] + " " + str(#yearNow)
         + " 00:00:00 +0900";
    $week2 = dllfuncstr("FormatDate", $date, "W" );
    if( $week2 != $week ) {
        message "曜日が違います。正しい曜日 = " + str(#month) + "/" +
        str(#day)
                 + "(" + $week2 + ")";
        #n = dllfunc("SetCancel", 1);
        enabledraw;
        endmacro;

    }

    searchdown "(?<=^|[^0-9])[0-9]+/[0-9]+([日月火水木金土])"
             , regular;
    if( result ) {
        goto Loop;
    }
    moveto #xStart, #yStart;
    enabledraw #ytop;

[ ]
RE:03237 【確認】あとで送信時の画面ちらNo.03238
TATE2 さん 12/03/13 18:00
 
TATEです。

ご多忙の折、ご教示ありがとうございました。
ご提示いただいたマクロをコピペして実行すると、

(XXXX.mac(93):ブロックの対応があいません

と表示されてしまいます。
申し訳ありませんが、何処が悪いのか教えてい
ただけないでしょうか。


[ ]
RE:03238 【確認】あとで送信時の画面ちらNo.03239
Iranoan さん 12/03/13 21:23
 
 TATE2さん今日は、Iranoan です。
> (XXXX.mac(93):ブロックの対応があいません
 マクロ部分だけをコピペすると、90 行しか有りません。
 93 行目でエラーになるという事は、余分な部分を貼り付けているか、自作
の部分が混じっていませんか?

 何のマクロかは理解していませんが、取り敢えずエラーにはなりませんでした(^^)

[ ]
RE:03239 【確認】あとで送信時の画面ちらNo.03240
TATE2 さん 12/03/14 08:47
 

Iranoanさん
お世話になります。

コメントありがとうございました。

なぜか手元ではエラーが起きてしまいます。
でも、Iranoanさんのところでうまく動作されている
ようなので、こちらの環境が悪いとはっきり分かり
ました。

再度、トライしてみます。^^


[ ]
RE:03240 【確認】あとで送信時の画面ちらNo.03241
TATE2 さん 12/03/14 08:54
 
TATEです。

再度、マクロをコピペしてファイルに保存したら
うまく行きました。
状況的に、コピペの操作ミスと思われます。


昨日は何回もやったのですが、思い込みですね。
お騒がせしました。


[ ]