タイトル | : [K2E]マクロ用文字列の予約語展開 |
記事No | : 3492 |
投稿日 | : 2006/01/30(Mon) 20:58 |
投稿者 | : NakIT |
ヘルプのマクロ用文字列記述基準にて述べられている予約語(%CopyStr% や %MacroStr0% など)の展開に関する問題です。
// 行の2重化 // DblLine.mac BeginUpdate SelectLine InputStr(%SelText%%SelText%) CursorLeft CursorUp EndUpdate
上記のような、以前に掲示板にて提示させていただいた行の二重化マクロを利用 しております。ここで、
|マクロ文字列9は「%MacroStr9%」です。
のような行に対してこのマクロを実行したとき、
|マクロ文字列9は「%MacroStr9%」です。 |マクロ文字列9は「%MacroStr9%」です。
といった結果を期待しますが、実際には、
|マクロ文字列9は「」です。 |マクロ文字列9は「」です。
となります。「」内には共通設定で定義されている %MacroStr9% の内容が入りま す。この程度ならまだよいのですが、「%SelText%」を含む行に対しては無限ルー プとなってしまいます。
同様に、コピーバッファの内容に「%CopyStr%」が含まれているとき、マクロで %CopyStr% を展開すると無限ループとなります。Paste なら期待通りです。
ソースを拝見したところ、KeyMacro.pas の ChangeMacroParamToStr が展開場所 のようです。もしかしたら、最後のほうの Insert(AnsiUpperCase(InsertStr), s1, index); を Insert(AnsiLowerCase(InsertStr), s1, index); に変更すれば改善できるのではないかと考えております。Delphi は門外漢であり、 上記はあてずっぽうです。すいません。
ご検討をお願いします。
|