- 作成者投稿
- 2013年12月15日 12:03 am #18832Autumn参加者
OS Vista
ソフトのバージョン 14バージョン13から14にバージョンアップした直後、
StartOfDocument メソッドの挙動に変化がありました。document.selection.StartOfDocument( [ bExtend ] );
bExtend
省略可能。選択範囲を解除するかどうかを指定します。省略すると、選択範囲を解除して移動します
とありますが、
たとえば
下記のようなテキストがあって
■ 12/14(土)■ 12/15(日)
下記のようなプログラムを動作させた場合(テスト用プログラム.jsee)
var 日付= new Array() ;
var 日数= new Array() ;
//
//行頭が■の行の数を数える
document.selection.StartOfDocument(false);//テキストの文頭にカーソルを移動する
日数=document.selection.Find(“^■”,eeFindSaveHistory | eeFindReplaceRegExp | eeFindCount | eeFindSelectAll);
alert( “日付は”+日数+”日あります” );//行頭が■の行を検索 次を検索
//\\d\\d/\\d\\dでは文中の日付をひろってくる可能性がある
//理由はよくわからないが、StartOfDocument(false)とすると、■直後にカーソルが移動する
//document.selection.StartOfDocument(true);//テキストの文頭にカーソルを移動する。
document.selection.StartOfDocument(false);//テキストの文頭にカーソルを移動するQuit();
カーソルが■の直後に移動します。
それも、■が二つあるので、その両方の直後にカーソルが点滅してます。document.selection.StartOfDocument(true);とすると、
選択範囲は解除されませんが、カーソル位置は文書の文頭に移動します。以前は、つまりバージョン13の時は
document.selection.StartOfDocument(false);
にした場合、選択範囲は解除され、カーソル位置も文書の文頭に移動していたのですが
これは正しい挙動なんでしょうか。ちなみに、検索直後に手動で
Ctrl + Home キーとすると、正しく、カーソルは文書の文頭に移動します。マクロの記録でCtrl + Home キーとすると
document.selection.StartOfDocument(false);と記述されます。2013年12月15日 2:16 am #18833Yutaka Emuraキーマスターkanon 様
いつも EmEditor Professional をお使いいただき、誠にありがとうございます。
ご指摘のように、v14 から、複数選択の状態で、カーソルが自由に移動できるようになったため、仕様が変わりました。
document.selection.StartOfDocument(false);//テキストの文頭にカーソルを移動する
の前に、
document.selection.Collapse();
を入れてお試しください。
よろしくお願い申し上げます。
Yutaka
2013年12月16日 10:03 pm #18838Autumn参加者迅速で的確な対応ありがとうございます。
プログラムの挙動を確認してから、と思っていたら、遅くなってしまいました。
返答が遅れて、すみません。教えていただいた通り、命令を一文、追加すると、
以前の動作に戻りました。ありがとうございます。また、ソフトの仕様の変更に伴って、変更になったマクロの仕様の変更も
ヘルプにて、付け加えていただくとありがたいです。
お願いします。 - 作成者投稿
- このトピックに返信するにはログインしてください。