HyperCard tribute

文法


 理論編の最後として文法についてまとめておきます。全ての命令を網羅することはできませんので、必要な場合は市販のリファレンスマニュアルを買って下さい。
注:説明式中にでてくる、[・・・]は省いても良い部分です。


put

 put文はコンテナに値を代入するときに用います。

  • put <式> into [チャンク of] <コンテナ>
       式をコンテナ [のチャンク] に、上書き代入する

  • put <式> before [チャンク of] <コンテナ>
       式をコンテナ [のチャンク] の前に、つけ加える

  • put <式> after [チャンク of] <コンテナ>
       式をコンテナ [のチャンク] の後に、つけ加える

     フィールドや変数に文字や数字を代入したり、

    set

     set文はプロパティーを設定するときに使います。

  • set <プロパティー> [of オブジェクト] to <設定値>
       [オブジェクトの] プロパティーを設定値の値に設定する

     set文で設定できる物は大変多く、オブジェクトのサイズからフィールドのフォント設定、カーソルの形状など、数え切れないほどの設定可能なプロパティーがあります。



    if

     if文は条件分岐をさせたいときに使います。






  • if <式> then
      <命令文1>
      <命令文2>
      <・・・・>
    end if


     式の値が真の場合は then節、偽の場合は else節が実行される。他の言語と同じく else節は省略することができ、命令文が1つの時は1行にまとめることができる。
     HyperCardでは、tabキーまたはリターンキーを押すことによりインデントが付けられます。スクリプトの書き方がおかしい場合は綺麗にインデントがつきませんので、デバグをして正しくインデントがつくようにして下さい。



    repeat

     repeat文を用いれば、同じ構造を持った文を複数回繰り返す必要がある場合に、その文を必要な行数だけ何度も記述する必要はなくなります。






  • repeat [繰り返す回数]
      <命令文1>
      <命令文2>
      <・・・・>
    end repeat
     繰り返す回数を省略すれば、永遠に繰り返させることもできます。






  • repeat until <条件式>
      <命令文1>
      <命令文2>
      <・・・・>
    end repeat
     条件式の値が真になるまで、命令文を繰り返します。命令文を実行している最中に条件式の値が真になった場合にも最後の命令文まで実行します。






  • repeat while <条件式>
      <命令文1>
      <命令文2>
      <・・・・>
    end repeat
     条件式の値が真である間、命令文を繰り返します。






  • repeat with <変数>=<初期値> to <最終値>
      <命令文1>
      <命令文2>
      <・・・・>
    end repeat
     変数の値を初期値から始め、全ての命令文を繰り返す度に変数の値に1を加算します。






  • repeat with <変数>=<初期値> down to <最終値>
      <命令文1>
      <命令文2>
      <・・・・>
    end repeat
     変数の値を初期値から始め、全ての命令文を繰り返す度に変数の値を1減らします。

  • next repeat
     repeat文の中で使用することで、次のend repeat文までの命令文をスキップさせることができます。

  • exit repeat
     repeat文の中で使用すると、その時点でrepeat文を抜けることができます。




    delete

     delete文は削除をさせるときに使います。

  • delete [チャンク] [of コンテナ]
     削除をさせるためには、delete文の他にemptyをput文を使って代入するという方法もありますが、delete文の方はチャンクも削除することができるため空っぽのチャンクが存在するということはなくなります。
    例:1,2,3,4,5  左のデータの3番目のアイテムを削除します
        empty:1,2,,4,5
        delete:1,2,4,5