要望:編集エリア以外のキー割り当てNo.05589
緒方聡 さん 10/04/20 14:17
 
お世話になってます。
ご相談があります。

【背景】
私は Delete キーや Home キー、Ctrl-V、Enter など、たくさんの標準機能をマクロ
で置き換えています。

例えば検索ボックスにフォーカスがある場合で、かつ Home キーを押した場合、検索
ボックスのキャレットが先頭に移動して欲しいのですが、そのような操作がマクロか
らできません。

Ctrl-V は
 beginclipboardread;
 $$line = getclipboard;
 setsearch $$line, searchoption;
上記のような感じで対応していますが、検索ボックスが選択状態にあってもなくても
全置換になってしまうので、使い勝手が良くないです。

例えば、検索ボックスの場合

- 文字列の取得(文字列の設定はある)
- キャレット位置の取得・設定
- 選択状態の取得・設定

などが必要です。

また、キー入力を受け付けるのは、アウトライン解析枠、ファイルマネージャ枠、ア
ウトプット枠なども同様ですが、それらの制御もマクロで行うようにできるようにす
るのは、サイトー企画さんもマクロ作者もお互いかなり大変そうです。

【相談】
そこで、以下のような感じになればよいかなと思っています。

- キー割り当ては、編集エリア用とそれ以外用を用意する

上記のようにすれば編集エリア以外では、既定の動作にできるため(敢えてマクロを
動作させることも可能)問題が発生しなくなると思います。


ご検討よろしくお願いします。

[ ]
RE:05589 要望:編集エリア以外のキー割りNo.05593
秀丸担当 さん 10/04/20 16:04
 

>例えば検索ボックスにフォーカスがある場合で、かつ Home キーを押した場合、検索
>ボックスのキャレットが先頭に移動して欲しいのですが、そのような操作がマクロか
>らできません。

確かに検索ボックスではこれらのキー操作にマクロが割り当てられている場合都
合が悪いようです。
個別のキー割り当てができたらまず問題は無いと思います。やるとしたら少し大
掛かりになりそうなのが心配ではあります。
そういうネタもあるということで参考にさせていただきます。

マクロ終了後に既定の動作を続行するような指示ができたらいいかもしれないと
思って、試しにやってみたところ、検索ボックスではうまくいきましたがアウト
プット枠ではうまくいきませんでした。
こちらの方法でしたら比較的いろいろ問題無いので、もう少し検討するとうまく
いく方法もあるかもしれないので、もしできそうな場合はこちらも考えたいと思
います。

[ ]
RE:05593 要望:編集エリア以外のキー割りNo.05595
緒方聡 さん 10/04/20 16:56
 
>マクロ終了後に既定の動作を続行するような指示ができたらいいかもしれないと
>思って、試しにやってみたところ、検索ボックスではうまくいきましたがアウト
>プット枠ではうまくいきませんでした。
>こちらの方法でしたら比較的いろいろ問題無いので、もう少し検討するとうまく
>いく方法もあるかもしれないので、もしできそうな場合はこちらも考えたいと思
>います。

現状 getfocus でどこに対してキー入力があるか、というのは取れるので、それ以外
なら既定の動作、というのが最も簡単かなとは思ったのですが、いったい何が既定な
のか、というのが難しいのかな、とも思いましたが、今調べてみたら DEFALUT.KEY
から KEY.TXT が吐けるので、既定の動作は DEFALUT.KEY として、マクロ使用者は K
EY.TXT を参照して何に仕込むかを決める、あるいは DEFALUT.KEY を上書きする、と
いうのは案として良いのかも知れませんね。

ご検討お願いします。

[ ]