*disclaimer
1157442
HSP で ラジオボタン radio button
radiobutton.hsp(348)
; ラジオボタンの基本
; copyleft 2017-07-22 sugiura@nagoya-u.jp
*main
;A
pos 100, 100
chkbox "A", a ; "選択肢の文字", 選ばれているかの状態を記録する変数 OFFが0 ONが1
Aid = stat ; 配置したボタンのオブジェクトIDを記録しておく
sendmsg objinfo(stat, 2), $F4, $9 ; sendmsg オブジェクトのパラメタを変更する命令
; objinfoでオブジェクトのパラメタを扱う
; objinfo(オブジェクトID, オブジェクト情報のタイプ)
; オブジェクト情報のタイプとして 2 を指定することで、
; ウィンドウオブジェクトの「ハンドル」情報を使うことを指定
; stat に現在の「処理結果」の値が入る
; $F4 はwParam で スタイル設定をすることを指定します、
; $9 は、ボタンのスタイルの中で「ラジオボタン」を選ぶこと意味します。
; なので、$F4, $9 と指定することで、ボタンのスタイルを
; ラジオボタンにする、ということです。
;B
;pos 100, 140
chkbox "B", b
Bid = stat
sendmsg objinfo(stat, 2), $F4, $9
;C
;pos 100, 180
chkbox "C", c
Cid = stat
sendmsg objinfo(stat, 2), $F4, $9
;D
;pos 100, 220
chkbox "D", d
Did = stat
sendmsg objinfo(stat, 2), $F4, $9
pos 100, 300
button gosub "check", *how ; check ボタンを押したらサブルーチンでチェックする
mes ""
button "Quit", *owari
stop
*owari
cls
pos 300, 300
font msgothic, 30
mes "Quit now!
wait 90
end
;----------------------------------------sub--------------------------------------------------
*how
sendmsg objinfo(Aid, 2), $F0 ; objinfoで、どのオブジェクトにメッセージを送るかを指定
; $F0 は、オブジェクトの状態を報告するように、というメッセージ
; オブジェクトが選ばれていたら 1
; オブジェクトが選ばれていなかったら 0
if stat == 1 { ; 結果が stat に帰ってくるので、それが、 1 かどうか判断
dialog "A" ; 選ばれていたら、"A" というダイアログを表示する
}
sendmsg objinfo(Bid, 2), $F0
if stat == 1 {
dialog "B"
}
sendmsg objinfo(Cid, 2), $F0
if stat == 1 {
dialog "C"
}
sendmsg objinfo(Did, 2), $F0
if stat == 1 {
dialog "D"
}
return
https://sugiura-ken.org/wiki/