HSPはウィンドウに配置するボタンやチェックボックスを「オブジェクト」といってます。HSPはこの他にインプットボックス、メッセージボックス、コンボボックス、リストボックスというのを全部で6種類のオブジェクトを標準の命令で用意できます。ここではボタンとチェックボックスの講座です。
オブジェクトの表示位置は「pos命令」を使って指定します。オブジェクトを表示する大きさは「objsize」命令を使って指定します。オブジェクトの文字フォントを変えるには「font」命令を呼びます。これに加えてオブジェクトの場合は「objmode」命令を呼ぶとフォントが適用されます。
HSPでは「オブジェクトID」という数値が出てきます。これはオブジェクトを配置するごとに0から割り振られていく数字です。
HSPのボタンは四角い形をしたオブジェクトで、ボタンの上には文字が表示されています。「button命令」を使います。ボタンを押すと指定したラベルへ処理が移動します。
// ボタンの設置
button "ボタン1",*osu1
mes "オブジェクトID:"+stat+""
pos 150,100 // 位置
objsize 150,50 // 大きさ
button "ボタン2",*osu2
mes "オブジェクトID:"+stat+""
stop
// ボタンを押した時の飛び先
*osu1
mes "ボタン1を押した。"
stop
*osu2
mes "ボタン2を押した。"
stop
ボタンに表示されている文字をボタン設置した後に変えるには「objprm」命令を使います。第一パラメータには上のオブジェクトIDを指定します。ボタンの場合は、ジャンプした飛び先(ラベル)でもオブジェクトIDがシステム変数「stat」に代入されていまうs。
// ボタンの設置
button "ボタン1",*osu1 // オブジェクトID 0
button "ボタン2",*osu2 // オブジェクトID 1
stop
*osu1
objprm stat,"変更" // statには0が代入されてる
stop
*osu2
// バラバラ数値の乱数
objprm stat,rnd(100) // statには1が代入されてる
stop
2つ目のボタンは押すたんびにバラバラの数値(乱数)が表示されます。
HSPのチェックボックスは四角いチェック項目の部分と、文字が表示される部分があるオブジェクトです。チェックを入れたり外したりして状態が変化します。「chkbox命令」を使います。チェックがあるかないかを確認するには、第一パラメータの変数を見ます。
pos 50,50 // 位置
objsize 100,30 // 大きさ
// チェックボックスの設置
chkbox "チェックボックスA",c1
chkbox "チェックボックスB",c2
chkbox "チェックボックスC",c3
chkbox "チェックボックスD",c4
button "確認",*check
stop
// チェック確認
*check
mes "A:"+c1+" / B:"+c2+" / C:"+c3+" / D:"+c4+""
stop
チェックボックスにチェックがあれば1、チェックがなければ0が変数に代入さてます。この変数にあらかじめ1を指定しておくと、チェックボックスを配置する段階でチェック入りのチェックボックスになります。
c2=1
c4=1
// チェックボックスの設置
chkbox "ボックスA",c1
chkbox "ボックスB",c2
chkbox "ボックスC",c3
chkbox "ボックスD",c4
stop
「chkbox」命令でチェックボックスを配置して、チェックマークを入れたり外したりするには「objprm」命令を使います。第一パラメータにオブジェクトIDで、第2パラメータで0を指定するとチェックが外れ、1を指定するとチェックが付きます。
// チェックボックスの設置
chkbox "HSP",c1
button "ON/OFF",*onoff
stop
*onoff
if c1=1{
// チェックを外す
objprm 0,0
}else{
// チェックを入れる
objprm 0,1
}