Last Update : 2007/05/xx
HSPがサポートしているGUIオブジェクトのフォーカス移動の挙動を指定する命令です。命令名の由来は「object skip」。HSP 3.2以降で対応する命令です。
objmode オブジェクトID, モード
HSP3では、オブジェクト間のフォーカス移動がデフォルトで有効になっており、ウィンドウ内全体のフォーカス移動はobjmode命令で無効にできます。objsel命令を使うと、スクリプトから特定オブジェクトへフォーカスの移動が可能です。
この命令は個々のオブジェクトに対してフォーカスの挙動を指定できる命令です。第1パラメータにオブジェクトを設置した順番に割り当てられるオブジェクトID(0〜)を指定します。オブジェクトは、ボタン(button命令)、チェックボックス(chkbox命令)、入力ボックス(input命令)、メッセージボックス(mesbox命令)、コンボボックス(combox命令)、リストボックス(listbox命令)です。
また、Win32コントロールを設置するwinobj命令は、通常ではフォーカス移動の対象外になっており、フォーカスはスキップしていましたが、objskip命令を使うことでフォーカス移動の対象へと含めることができます。
第2パラメータのモード | |
0 | Error 3 (パラメータの値が異常です) |
1 | オブジェクトをフォーカス移動の対象へ含める |
2 | 次のオブジェクトにフォーカスを移動させない |
3 | オブジェクトのフォーカス対象から外す |
☆ オブジェクトのフォーカスの役割
マウスを利用しないで、キーボードのキー操作のみでオブジェクトの状態を変更できるようにしてくれるWindowsの機能です。TABキーでフォーカスを移動して、スペースキーやカーソルキーで状態を変更できます。
objskip命令のサンプルスクリプトです。モード2の場合は、objskip命令を指定した「次の」オブジェクトにフォーカスが移動せず停止します。
// フォーカス移動の無効 [HSP 3.2〜] chkbox "有効", a chkbox "有効", a objskip stat, 2 ; 以降はフォーカス移動が停止 chkbox "無効", a chkbox "無効", a
モード3の場合は、objskip命令を指定したオブジェクトにフォーカスが移動せず、次のオブジェクトにそのままフォーカスが移ります。以降、フォーカスはループします。
// フォーカス移動のスキップ [HSP 3.2〜] chkbox "有効", a chkbox "無効", a objskip stat, 3 ; フォーカス移動をスキップ対象 chkbox "有効", a chkbox "有効", a
objskip命令のモード1で、winboj命令で設置したコントロールをフォーカス移動の対象へと含めることができます。
// winobj命令をフォーカス移動の対象先に [HSP 3.2〜] chkbox "有効", a winobj "button", "無効", , $50000009 ; デフォルトではフォーカス対象外 chkbox "有効", a winobj "button", "有効", , $50000009 objskip stat, 1 chkbox "有効", a
(工事中)
HSP3 あれこれ (オブジェクト)のページでは、HSPのGUIオブジェクトに関連した各種命令の一覧リストを掲載してます。