HyperCard tribute

自動スタック整理


 HyperCardのスタックは使用し続けていくうちにスタックに空きが出てきてしまいます。スタックの空きは余分なスペースなので、定期的にスタック整理をしてスタックの空きを解消したほうが良いのですが問題があります。それは、スタック整理がメニュー項目であるということです。すなわち、ユーザーがスタック整理を行わない限り実行されないのです。
 自分一人で使うスタックならば良いですが、多くのユーザーに配布するスタックを目指すならば、自動的にスタック整理をしたほうがユーザーフレンドリーといえるでしょう。

 それでは、スタックの空きが10キロバイト以上になればスタック整理をするスクリプトを作ってみます。
 1 
 2 
 3 
on closeStack
  if the freeSize of this stack > 10*1024 then domenu "Compact Stack"
end closeStack

  • if the freeSize of this stack > 10*1024 then domenu "Compact Stack"
     closeStackハンドラは、スタックを閉じる時に実行されるハンドラです。freeSizeは、バイト数表示ですので、キロバイト表示にするために1024を掛けてあります。
    「this stack」
      の
    「the freeSize(スタックの空きサイズ)」
      が(is)
    「if 〜 > 10*1024(10キロバイト以上)」
      ならば
    「domenu "Compact Stack"(メニュー項目 "Compact Stack")」

     もし、スタックの空きサイズに関係なくスタック整理をしたいなら、if文を取り除いてdomenu "Compact Stack" のみにすれば良いです。