範囲選択とキー割り当ての方法についてNo.16051
和波孝禧 さん 04/01/06 00:46
 
 昨日は、ダイレクトタグジャンプについてご指導いただき、ありがとうございまし
た。タグジャンプという言葉は知っていても、実際に何をするものかよく分からない、
そんな万年初心者です。すみません。
 これまでは、URLの書かれたところでシフトキーを押しながらカーソルを動かし
て範囲選択し、それをクリップボードにコピーしてからIEを起動し、アドレスバー
に貼り付けてようやくホームページにたどり着いていました。ずっと悩んでいたので
すが、思い切ってここに投稿して良かったです。本当にありがとうございました。
 さて、それに関連して2点ほど教えていただきたいことがあります。一つは範囲選
択の方法です。
 秀丸エディターのキー割り当てには、クリップボード関係の中に「選択開始」とい
うコマンドがあります。これを実行すれば、そこからカーソル位置までの範囲を選択
できるのではないかと思うのですが、間違いないでしょうか。
 次に、この「キー割り当て」なのですが、どうもうまくできません。キー割り当て
をした後「保存」で現在のファイルに上書きしたり、あるいは別のファイル名で保存
したり、いろいろやっているのですが、どうも思ったようなキーに割り当てられない
のです。
 視覚障害者である石山さんが作られた「座標読み上げマクロ」を秀丸のマクロ50番
に登録し、それをctrl+,のキーに割り当てようとしたのですが、これができずに今は
なぜかf1キーに割り当てられています。
 大変申し訳ありませんが、キー操作によるキー割り当ての方法をお教えいただけな
いでしょうか。これがスムーズにできるようになれば、鶴亀メールもいっそう使いや
すくなると感じています。どうかよろしくお願いいたします。

[ ]
RE:16051 範囲選択とキー割り当ての方法にNo.16052
秀まるお2 さん 04/01/06 01:22
 
 先日のURLクリックの件ではお役に立てなくてすみません。実は僕自身もURLの
クリックがCtrl+F10キー(ダイレクトタグジャンプコマンド)でできるとは知り
ませんでした。

 (かなり裏技ですよね。これって)

> 秀丸エディターのキー割り当てには、クリップボード関係の中に「選択開始」とい
>うコマンドがあります。これを実行すれば、そこからカーソル位置までの範囲を選択
>できるのではないかと思うのですが、間違いないでしょうか。

 これは合ってます。しかし、実は、秀丸リーダーと組み合わせて使った場合は
うまく動作しなかったと思います。

 その根本的な原因は、マクロのgettextという命令で範囲選択が解除されてし
まうことにありまして…。っと内部的な事情を書いても仕方ありませんが、とに
かく現状では、秀丸リーダーを使いつつ、うまく「範囲選択開始」のコマンドを
使うことはできなかったと思います。

 でも、Shift+カーソル移動キーによる範囲選択はそこそこ動くようになってた
ような気がします。

 という僕自身も、秀丸リーダーおよび音声化ソフトは、それ用のテスト環境上
でないと実証できなくて、今の自宅では確認できません。明日あらためて確認し
ます。

[ ]
RE:16052 範囲選択とキー割り当ての方法にNo.16053
Iranoan さん 04/01/06 02:55
 
 秀まるおさん、和波孝禧さん今日は、Iranoan です。
> 実は僕自身もURLの
> クリックがCtrl+F10キー(ダイレクトタグジャンプコマンド)でできるとは知り
> ませんでした。
 今回の目的の場合、普通は「...を開く」を使うのでしょうが、この機能は
標準ではどのキーにも割り当てられていないんですよね。これは右クリックメ
ニュー共々、標準で何らかのキーに割り当てられていた方がよいのでしょうけ
ど。

 閑話休題
> 実は、秀丸リーダーと組み合わせて使った場合は
> うまく動作しなかったと思います。
 今回の話題は、秀丸リーダとの組み合わせの話なのでしょうか? 私は、
>  視覚障害者である石山さんが作られた「座標読み上げマクロ」
という記述から、gettext 関数の問題以前のことで躓かれている気がしました。
 更に、まず
> ctrl+,のキーに割り当てようとした
と有りますが、これは無理です。元々鶴亀の本体にしろ、エディタ・ウィンド
ウにしろ ctrl+, には割り当てできません。他にも Ctrl+. などにも割り当て
できません。他のキーに割り当ててください。次に、
> キー割り当て
> をした後「保存」
との事なので、念の為書いておきますが、キーの割り当てが出来たら、必ず
[OK] ボタンを押してください。「保存」は設定ダイアログ・ボックスを開い
たときの設定を保存するので、変更が反映されません。←考えてみれば、不思
議な仕様。

 あと gettext 関数についての問題は、マクロ用フォルダにある
HmRead2.mac の内容を、末尾のマクロを C&P 等で全て書き換えてください。
多分回避できると思います。マクロ用フォルダについては、ヘルプの「マクロ
関係について」を御覧ください。
//-------------- HmRead2.mac の改訂版 -------------------------------
ddeinitiate "HidemaruReader", "Read";
if( linelen == 0 ) {
  ddeexecute "!くうぎょう";
  endmacro;
}
#s = selecting;
if( #s ) {
  disabledraw;
  #x1 = seltopx;
  #y1 = seltopy;
  #x2 = selendx;
  #y2 = selendy;
  if( x == seltopx && y == seltopy ) {
    #top = 1;
  }
  left;
  if( !selecting )#beginsel = 1;
}
$str = gettext( 0, y, 255, y );
ddeexecute "!" + $str;
if( #s ) {
  if( #top ) {
    moveto #x2, #y2;
    beginsel;
    moveto #x1, #y1;
  } else {
    moveto #x1, #y1;
    beginsel;
    moveto #x2, #y2;
  }
  if( #beginsel )endsel;
  enabledraw;
}
ddeterminate;

[ ]
RE:16053 範囲選択とキー割り当ての方法にNo.16056
Iranoan さん 04/01/06 12:06
 
 和波孝禧さん今日は、Iranoan です。
 前回、前々回の投稿で、マクロが間違っていました。重ね重ね申し訳ありま
せん。→All
//-------------- HmRead2.mac の改訂版 -------------------------------
ddeinitiate "HidemaruReader", "Read";
if( linelen == 0 ) {
  ddeexecute "!くうぎょう";
  endmacro;
}
#s = selecting;
if( #s ) {
  disabledraw;
  #x1 = seltopx;
  #y1 = seltopy;
  #x2 = selendx;
  #y2 = selendy;
  if( x == seltopx && y == seltopy ) {
    #top = 1;
  }
  #y = y;
  up;
  if( !#y )down;
  if( !selecting )#beginsel = 1;
}
$str = gettext( 0, y, 255, y );
ddeexecute "!" + $str;
if( #s ) {
  if( #top ) {
    moveto #x2, #y2;
    beginsel;
    moveto #x1, #y1;
  } else {
    moveto #x1, #y1;
    beginsel;
    moveto #x2, #y2;
  }
  if( #beginsel )endsel;
  enabledraw;
}
ddeterminate;

[ ]
RE:16056 範囲選択とキー割り当ての方法にNo.16061
秀まるお2 さん 04/01/06 14:19
 
 こういう方法があるとは知りませんでした。

 さっそく手元のHmRead2.macにパクらせていただきます。(Iranoanさんから教
えてもらった新しい方法と書いておきますので)

[ ]
RE:16061 範囲選択とキー割り当ての方法にNo.16062
秀まるお2 さん 04/01/06 14:35
 
 Iranoanさんのマクロそのままだと範囲選択しながらの音声化が少しおかしか
ったです。カーソル位置が1行狂う場合があるみたいです。

 ただし、そもそも視覚障害者であるユーザー様に、このようなマクロの手作業
による書き換えが出来るのかって方が問題のような気がします。視覚障害者の
ユーザー様でなくても、マクロにそこそこ精通されたユーザー様でないと難しい
し…。

 秀丸リーダーといえば、実はつい最近、電話にて問い合わせいただいたユー
ザー様がおられまして、鶴亀メール単品利用の場合に秀丸リーダーがインストー
ルできないという問題を報告いただいてます。これもせっかくなので今日にでも
直すことにします。

 改良版のHmRead2.macは以下のようになりました。
-------------------------------------------------
    ddeinitiate "HidemaruReader", "Read";
    if( linelen == 0 ) {
        ddeexecute "!くうぎょう";
        endmacro;
    }
    #s = selecting;
    if( #s ) {
        disabledraw;
        #x1 = seltopx;
        #y1 = seltopy;
        #x2 = selendx;
        #y2 = selendy;
        if( x == seltopx && y == seltopy ) {
          #top = 1;
        }
        #x = x; #y = y;
        up;
        down;
        if( !selecting )#beginsel = 1;
        moveto #x, #y;
    }
    $str = gettext( 0, y, 255, y );
    ddeexecute "!" + $str;
    if( #s ) {
        if( #top ) {
          moveto #x2, #y2;
          beginsel;
          moveto #x1, #y1;
        } else {
          moveto #x1, #y1;
          beginsel;
          moveto #x2, #y2;
        }
        if( #beginsel )endsel;
        enabledraw;
    }
    ddeterminate;

[ ]
RE:16062 範囲選択とキー割り当ての方法にNo.16063
Iranoan さん 04/01/06 15:37
 
 秀まるおさん今日は、Iranoan です。
>  Iranoanさんのマクロそのままだと範囲選択しながらの音声化が少しおかしか
> ったです。カーソル位置が1行狂う場合があるみたいです。
 あれれ、
>   if( !#y )down;
で対処しているつもりだったんですが、駄目でしたか。ただ
>         #x = x; #y = y;
>         up;
>         down;
>         if( !selecting )#beginsel = 1;
>         moveto #x, #y;
の方法なら、up, down のどちらかは要らないと思います。兎に角カーソルを
移動して、範囲選択が解除されなければ、「範囲選択開始」状態のはずなので。

 あと秀丸リーダの動きが良く解らないので、間違っているかもしれませんが、
>     $str = gettext( 0, y, 255, y );
の部分は一行の取り込みなら、
    $str = gettext( 0, y, width, y );
としたいところですが、DDE の制限で 255 文字なので、必要なら最初に
if( width > 254 )config "w254";
とした上で、
    $str = gettext( 0, y, 254, y );
としないと、
ddeexecute "!" + $str;
で 1 文字追加される分上手く動作しないのではないでしょうか?

[ ]
RE:16063 範囲選択とキー割り当ての方法にNo.16064
秀まるお2 さん 04/01/06 15:51
 
> >     $str = gettext( 0, y, 255, y );
> の部分は一行の取り込みなら、
>     $str = gettext( 0, y, width, y );

 ddeの制限は無いはずですけど、1行の折り返し桁数の最大は、今では255って
訳でもないです。おもむろに2000にしてみます。

[ ]
RE:16063 範囲選択とキー割り当ての方法にNo.16065
秀まるお2 さん 04/01/06 16:02
 
 ここにコメントするのもなんですが、秀丸リーダーのV1.71を先ほどアップ
ロードしました。これに付属のHmRead2.macは、既にIranoanさんから教えてもら
った方式になってまして、「範囲選択開始」のコマンドも使えます。

   http://www.hidemaru.interlink.or.jp/software/bin/hmread171.exe

 そもそも、根本的な問題として、「範囲選択開始」のキー割り当てがうまくい
かない話は別件かもしれませんが…。とりあえず、標準のキー割り当てはShift+
F6になっているので、そのキー操作でたしかに範囲選択開始できてるかどうか確
認いただきたいと思います。

[ ]
RE:16064 範囲選択とキー割り当ての方法にNo.16066
Iranoan さん 04/01/06 16:15
 
 秀まるおさん今日は、Iranoan です。
>  ddeの制限は無いはず
 あれれ http://www.maruo.co.jp/hidesoft/2/x15293_.html#15313 のスレッ
ドを呼んでそう思ったのですが、制限は dderequest だけなのでしょうか?
> DDE
> マネージメントライブラリ

> DDEMLのDdeCreateStringHandleが255までしか対応していませんでした。
および
> 「この制限の理由は、DDEMLストリング管理機能がグローバルアトムを使用してイン
> プリメントされているからです。」
> 「文字列アトムに関連付けられている文字列のサイズは、 255バイト以下でなければ
> ならない。
> この制限はすべてのアトム関数に適用される。」
から、てっきり DDE 全般だと思っていました。

[ ]
RE:16066 範囲選択とキー割り当ての方法にNo.16070
秀まるお2 さん 04/01/06 17:28
 
 実はよく分かってないんですが、そこにそう書いてあるならそっちが正しいん
でしょうね。

 実は、秀丸リーダー内のDDE用バッファが、最近ですけど、256バイトから8192
バイトに拡張されてます。これはこれでユーザー様から要望されてそうしたんで
すけど、実際に256バイトを超える音声化がちゃんと出来てるかどうかまでは確
認してませんで、詳細も分からずやってたりします。

[ ]
RE:16051 範囲選択とキー割り当ての方法にNo.16072
和波孝禧 さん 04/01/06 18:05
 
  秀まるおさん、皆さん、和波です。いろいろとコメントをいただき、また秀丸リー
ダーの新バージョンをアップしていただき、本当にありがとうございました。
 早速試してみましたが、範囲選択はちゃんとできました。shift+f6にもともと割り
当てられていたのですね。あまりコンピューターの知識がないのにいろいろやってみ
たくなるので、困ったものです。
 キー割り当てのカスタマイズは、どうやらできるようになったみたいです。key.tx
t も作成し、どんなキー割り当てがデフォルトで装備されているのかも、もう一度勉
強します。
 ところで、実は私は、(前にも書きましたが)石山さんという視覚障害者の方が作
られてネット上で公開されている「秀丸鶴亀音声強化マクロ」というものを組み込ん
でいます。初め、石山さんのページで鶴亀メールのことを知り、このマクロを使って
とても快適だったため、鶴亀を愛用するようになりました。石山さんがこの会議室に
加わっておられると良いのですが、今回改訂されたマクロを反映した「音声強化マク
ロ」を作っていただけるように、お願いしてみます。(私には全く知識がなく、マク
ロの書き換えなどはとても無理なので)。
 でも、自分でマクロを作ることができたらどんなに楽しいだろう、と思ったりしま
す。今は時間的な制約があって勉強することができませんが、もう少し時間に余裕が
できたら取り組んでみたい、とまじめに考えています。
 無駄話が長くなりました。これからも、どうぞよろしくお願いいたします。生活必
需品として、鶴亀メールを愛用して行きます。

[ ]