BugReport/219

http://sakura.qp.land.to/?BugReport%2F219


Top > BugReport > 219

GetSelectColmToの戻り値

  • ページ: BugReport
  • 投稿者: mg?
  • 優先順位: 普通
  • 状態: 提案
  • カテゴリー: マクロ
  • 投稿日: 2017-11-07 (火) 18:54:46
  • バージョン: 2.3.0.0

メッセージ

バージョン2.3.0.0〜2.3.2.0でマクロのGetSelectColmToとGetSelectColmFromの戻り値がおかしいようです。


座標変換サンプル

fileconvert_col.js
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
function Zahyo(){
    var lay_y = Editor.GetSelectLineFrom()
    var lay_x = Editor.GetSelectColmFrom();
    if(lay_y <= 0){
        return;
    }
    var lay_x_old = Math.floor(lay_x / Editor.GetDefaultCharLength());
    var logic_y = Editor.LayoutToLogicLineNum(lay_y);
    var logic_x = Editor.LineColumnToIndex(lay_y, lay_x)
    var text = Editor.GetLineStr(logic_y); 
    var text_to_index = text.substr(0, logic_x - 1);
    var col_x = Editor.GetStrWidth(text_to_index);
    Editor.InfoMsg("レイアウト " + lay_y + "行 " + lay_x + "桁(px) ルーラー" + lay_x_old + "桁\n" +
            "ロジック  " + logic_y + "行 " + logic_x + "桁\n" +
            "等幅換算  " + lay_y + "行" + col_x + "桁");
}
Zahyo();

  • 仕様変更です。文字数(全角=2/半角=1)にするにはGetDefaultCharLengthで割ってください。文字のindexがほしいならLineColumnToIndex -- 2017-11-07 (火) 19:56:02
  • ↑プロポーショナルフォントの場合は、割っても2,1にはならないので、GetStrWidthを併用する必要もあるかもしれません -- 2017-11-07 (火) 20:39:16
  • pxで返るようになってたんですね。失礼致しました。 -- mg? 2017-11-08 (水) 01:57:43
  • 上のコードは2.1.0.0以上であれば関数が先行実装されているのでlay_x以外は互換性がたぶんあります -- 2017-11-08 (水) 02:53:06
  • 指摘どおり、仕様バグだと思います。選択開始桁位置をpx単位で返すように変更しました(仕様変更です)と言ってるんです。選択開始位置が何桁目かを取得する関数が、画面上のpx位置を返すように改良されとるんです。v2.3で混入したバグでした、といって元に戻すのが正しい選択だと思います。 -- 2017-11-09 (木) 07:35:33

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White
fileconvert_col.js 145件 [詳細]
[添付ファイル一覧] [全ページの添付ファイル一覧]
アップロード可能最大ファイルサイズは 2,048KB です。

添付ファイル: fileconvert_col.js 145件 [詳細]

リロード   新規 編集 凍結 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2017-11-09 (木) 07:35:33 (2322d)