GetSelectColmToの戻り値
- ページ: BugReport
- 投稿者: mg?
- 優先順位: 普通
- 状態: 提案
- カテゴリー: マクロ
- 投稿日: 2017-11-07 (火) 18:54:46
- バージョン: 2.3.0.0
メッセージ
バージョン2.3.0.0〜2.3.2.0でマクロのGetSelectColmToとGetSelectColmFromの戻り値がおかしいようです。
座標変換サンプル
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 --
- ↑プロポーショナルフォントの場合は、割っても2,1にはならないので、GetStrWidthを併用する必要もあるかもしれません --
- pxで返るようになってたんですね。失礼致しました。 -- mg?
- 上のコードは2.1.0.0以上であれば関数が先行実装されているのでlay_x以外は互換性がたぶんあります --
- 指摘どおり、仕様バグだと思います。選択開始桁位置をpx単位で返すように変更しました(仕様変更です)と言ってるんです。選択開始位置が何桁目かを取得する関数が、画面上のpx位置を返すように改良されとるんです。v2.3で混入したバグでした、といって元に戻すのが正しい選択だと思います。 --
convert_col.js 145件
[詳細]