1 件の投稿を表示中 (合計 2 個)
  • 作成者
    投稿
  • #4363
    匿名
    ゲスト

    行選択して上にジャンプした後の選択範囲が変な気がします。
    それとジャンプ後左右カーソル移動で描画異常です。
    サンプルは上にジャンプしていますが、下にジャンプしても似たような事になります。

    var str = ‘aaaaaaaaaaaaarn’;
    for(var i=0;i<3;i++){str += str;}
    document.write(str+'---------------------rnZZZZZZZZZZZZZrn');
    document.selection.LineUp(false,2);
    editor.ExecuteCommandByID(4154);
    document.selection.SetActivePoint(eePosLogical, 1, 4, true);//Ctrl+G の意
    // この時、ハイフンの行は選択範囲外。バグか意図なのか不明

    //document.selection.CharRight(false,5);
    //マクロではなくキーボーで操作。ハイフンの行に妙な縦線描画がされる。
    // この後、ラインダウンして10行目へ移動し再びラインアップしてみると、
    // ハイフンの行が選択範囲内に。

    win2000sp4
    EmEidtor v6.00.4

    #4364
    ShuHei
    メンバー

    // この時、ハイフンの行は選択範囲外。バグか意図なのか不明

    これはマニュアルの通り正しい動作なんですが、
    マクロの自由さが裏目にでちゃった例ですね。

    もっと詳しく情報がでるマクロをこさえてみました。

    var prog = ”
    var str = ‘aaaaaaaaaaaaarn’;n
    for(var i=0;i<3;i++){str += str;}n
    document.write(str+’———————rnZZZZZZZZZZZZZrn’);n
    document.selection.LineUp(false,2);n
    editor.ExecuteCommandByID(4154);//行選択を開始n
    //document.selection.SetActivePoint(eePosLogical, 1, 4);n
    “;

    recipe = prog.split(“n”);

    for(var s in recipe)
    {
    if(recipe[s].replace(/^s+/,””).match(/^//.+/,””)){continue;}
    eval(recipe[s]);
    checkMode(“実行コード:” + recipe[s] + “n”,document.selection.Mode);
    }

    function checkMode(string,num)
    {
    x = document.selection.getActivePointX(eePosLogical);
    y = document.selection.getActivePointY(eePosLogical);
    sx = document.selection.getTopPointX(eePosLogical);
    sy = document.selection.getTopPointY(eePosLogical);
    ex = document.selection.getBottomPointX(eePosLogical);
    ey = document.selection.getBottomPointY(eePosLogical);

    ret = “選択の種類:”;
    switch(num & eeModeMask)
    {
    case eeModeStream:
    ret = ret + “eeModeStream”;
    break;
    case eeModeLine:
    ret = ret + “eeModeLine”;
    break;
    case eeModeBox:
    ret = ret + “eeModeBox”;
    break;
    case eeModeKeyboard:
    ret = ret + “eeModeKeyboard”;
    break;
    case eeModeSelected:
    ret = ret + “eeModeSelected”;
    break;
    }
    ret = ret + “n”;
    current_point = “現在のカーソル位置:” + x + “, ” + y + “n”;
    anchor_point = “選択範囲の開始位置:” + sx + “, ” + sy + “n”;
    bottom_point = “選択範囲の終了位置:” + ex + “, ” + ey + “n”;

    alert(string + “n” +ret + current_point + anchor_point + bottom_point);
    }


    確かに行選択(Ctrl+F8)後にジャンプ(Ctrl+G)をすると描画領域が変になりますね。
    マクロで調べる限りでは正しく選択範囲の最初と最後が
    設定されているのですが、ジャンプした直後だとうまく切り取れないようですし・・・

1 件の投稿を表示中 (合計 2 個)
  • このトピックに返信するにはログインしてください。