HyperCard tribute

ユーザー制限


 HyperCardではツールパレットを用いることで、簡単に変更を加えたりすることができます。しかし、フィールドの設定を勝手に変えられたり、カードに落書きされたりする可能性がないとも言えません。そのような場合の対処法にはいくつか方法があります。

  • ユーザーレベルを一時的に変更する
  • メニュー項目を使用不可にする
  • ツールパレット項目を使用不可にする


    「ユーザーレベルを一時的に変更する」
  • set the userlevel to ?
     ?にユーザーレベル(1〜5)を指定する事で、HyperCardが終了するまでの間ユーザーレベルを一時的に変更します。ユーザーレベルを下げればオブジェクトなどのメニューが使えなくなり、ツールパレットなども使えなくなります。
     実際には、フィールドへの書き込みは許されても、カードへの書き込みは許されてはなりませんので、ユーザーレベルを2に設定するのが良いでしょう。ユーザーレベル2では、上に書いたメニュー項目・ツールパレットの使用不可、そしてスクリプト編集不可となります。


    「メニュー項目を使用不可にする」
  • 例:disable menuItem "取り消し" of menu "編集"
     メニュー「編集」の項目「取り消し」を使用不可にします。

  • 例:disable menu "編集"
     メニュー「編集」の項目全てを使用不可にします。


    「ツールパレット項目を使用不可にする」
     1 
     2 
     3 
     4 
    
    on choose tool,n
      if n=2 or n=3 then exit choose
      else pass choose
    end choose
    

     パラメータ n には、現在どのツールパレットを選んでいるかが示されています。上のスクリプトでは、2と3のパレット、すなわちボタンツールとフィールドツールを選択していたならば、chooseハンドラを抜け選択できないようにします。


     HyperCardには自動保存機能があります。すなわち、自分の意志に反する変更を加えたとしてもそれが全て保存されることになるのです。これらの危険を回避するためにも、上述のスタック保護機能をつければスタックの安定性向上にもつながります。