Last Update : 2009/04/xx
HSPに登場するオブジェクトに対してユーザーによる操作を受け付けなくなるよう無効化・グレー表示化・使用不可の状態に切り替えます。オブジェクトの表示そのものは維持されます。命令名の由来は、「object enable」から。HSP 3.2からサポートされた命令です。
objprm オブジェクトID, 状態
対象オブジェクトは、標準命令で設置できる「ボタン」(button命令)、「チェックボックス」(chkbox命令)、「入力ボックス」(input命令)、「メッセージボックス」(mesbox命令)、「リストボックス」(listbox命令)、「コンボボックス」(combox命令)です。また、Win32コントロールを設置するwinobj命令、ActiveXコントロールを設置するaxobj命令に対しても機能します。
第1パラメータには、スクリプト上でオブジェクト設置順に0から割り振られる「オブジェクトID」を指定します。このオブジェクトIDはHSP独自の機能です。ちなみに、オブジェクト設置命令を呼び出した直後のシステム変数statには、オブジェクトIDの値が格納されてます。
第2パラメータには、0を指定(または省略)した場合はオブジェクトの状態が無効化され、1を指定した場合は通常の有効化状態になります。
ちなみに、HSP3(HSP 3.0〜)には標準同封の「obj.as」モジュールにobjgray命令というモジュール命令も用意されており、機能はobjenable命令とまったく同じです。ただ、これにはオブジェクトの状態(有効状態or無効状態)を取得できる機能があります。
オブジェクトの有効・無効の切り替えサンプルコードです。
// オブジェクトの状態切り替え by Kpan // !HSP 3.2〜 buf = "入力ボックス" mesbox buf, 200, 100 input buf, 200 a = 1 chkbox "チェックボックス", a button "切り替え", *change stop *change objenable 0, check objenable 1, check objenable 2, check ; 0 or 1 のスイッチ check ^= 1 stop
HSP3 あれこれ (オブジェクト)では、オブジェクトに関連した各種命令の一覧表を載せてます。オブジェクトを完全に撤去・消去するにはclrobj命令があります。