Top  上へ  目次


 Ver.10.2について

 アンケートで上がってた機能で、マウスオーバーでプレビューを表示するというのを実装してみたんですが、うまいこと行きません。
 いやほら、MDIモードで子ウィンドウを並べてたらタブを横断してマウスカーソルのあるタブのファイル名を拾って・・・と考えてたら色々煮詰まってしまいました。
 MDIモードで重ねて表示されてたら座標が一緒だと?!・・・とまぁ、どのファイルをマウスが指してるのか分からなくなってきました。
 というわけで、ちょっとクールダウンしてから再挑戦しようと思います。
 アクティブタブに限定したいなぁ。


 というわけで、スゲェ重いわりに地味な改修です。
 スクリプトでdo-whileによるループを載せます。
 またスクリプトで配列および、連想配列が使えるようにします。


 おそらく何のこっちゃ?という方も多いと思いますが、私も使わないと断言できる機能なので気持ちは一緒です。(オイ)
 多重ループなんぞ、要らないと思うんですがねぇ・・・。

do-whileは、こんな感じの構文です。
var $i=0
var $j=0
do
 $i =+ 1
  do
   $j =+ 1
   if $j == 2
    continue
   else
    break
   endif
  $i =+ 1
 while $j < 3
 $i =+ 1
while $i < 5

配列の宣言は、素直にこんな感じです。
var a[10]
 →a[0]〜a[9]まで10個変数を確保
var a[hoge]
 →hogeを添え字としてa[hoge]を変数として確保




 ただ、2点ほど既存の動作が変わり、従来の仕様と互換性が失われます。

 配列を使用する場合はループとか分岐とか、添え字の部分は変数にしますよね。
 var a[2]
 a[1]=あいうえお
 a[0]=1
 MessageBoxOk=a[a[0]]
 こんな感じに。
 ピンと来た方は凄いと思います。
 As/Rの置換マクロって1回しか判定を行っておらず、同じ置換を繰り返さないのです。
 今回の例で、従来方式では「a[1]」というモノが出てくるわけで、本来求めるべき仕様は「あいうえお」と出てきて欲しいわけです。
 というわけで、変数や置換マクロは最大10回リトライして置換するように仕様変更します。
 なぜ10回かというと
var $a[2]
$a[0]=$a
$a[0]=&[1]
$a[1]=$a
$a[1]=&[0]
messageboxok=$a[$a[0]]
 こんな循環する処理を書いちゃうと、置換で無限ループになるからですね。


 次に、繰り返し処理のルールが厳しくなります。
 for-next、do-whileの複雑な組み合わせが可能になりましたので、最低限のルールを定めないと多重ループを使う場合に混乱してしまうでしょう。
 というわけでforやdoが無い状態で、next,while,continue,breakに遭遇したらエラーメッセージを表示して中断するようにします。
 無視するという選択肢もあったのですが、今までエラーにならなかったのもマズかった気もしますし、動作が変わりますということで。


 正直、若干2名を除いて深く突っ込みが入る気はしないのですが、従来と動作が異なるので紹介しておきます。
 コレだけだと、書いたコードの量はともかく、更新履歴的にボリュームが小さいのでもうちょっと色々ぶっこみたいところですね。うーん