HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2025
0301
BBCchkboxで最前面の切り替え3解決


BBC

リンク

2025/3/1(Sat) 21:47:42|NO.103179

起動したプログラムを最前面(gsel 0,2)にしたり無効(gsel 0,1)にするには
以下のようなボタンを2つ使った方法でしか無理なのでしょうか?
1つのchkboxでチェックを付けたら最前面(gsel 0,2)、外したら無効(gsel 0,1)
と切り替えたいのですが思うようにできません。

button "ON1",*sc1
button "ON2",*sc2
stop
*sc1
gsel 0,1
stop
*sc2
gsel 0,2
stop



この記事に返信する


MIZUSHIKI

リンク

2025/3/3(Mon) 03:36:30|NO.103190

chkbox の変数内容をループの中で監視しても良いのですが、button の見た目をチェックボックスにしてしまう裏技を使うと簡単に監視ができます。

// チェックボックス監視サンプル ; 普通にボタンを作成 button gosub "最前面", *check hButton = objinfo(stat, 2) ; ボタンのウィンドウスタイルを変更してチェックボックス化 sendmsg hButton, $F4, $3 ; チェックボックスにチェックを入れる (BM_SETCHECK) ; 第3パラに 1=チェックあり、0=チェックなし ; (標準のobjprm命令では制御できないため) sendmsg hButton, $F1, 0 // ← 最初からチェックボックスにチェックを入れたい場合に使う stop *check ; チェックボックスの状態を取得 (BM_GETCHECK) ; statに 0=チェックなし、1=チェックありが返る sendmsg hButton, $F0 value = stat gsel 0, 1 + value // 最前面指定 [チェックあり: 2(=1+1), チェックなし: 1(=1+0)] return

以下リンクでKpanさんが分かりやすくまとめて下さっているので参考にしてみてください。
上記のサンプルスクリプトはほぼここからの抜粋です。

Let's HSP! - HSP3 あれこれ <オブジェクト 1>
http://lhsp.s206.xrea.com/hsp_object1.html



雪月夜

リンク

2025/3/3(Mon) 07:12:48|NO.103191

ループでチェック内容を取得したいならこのような方法があります。
MIZUSHIKIさんと被りますが、こちらのサイトが参考になります。
http://lhsp.s206.xrea.com/command/chkbox.html

scchk=0 tscchk=scchk chkbox "ON",scchk repeat gosub *sc await loop stop *sc if tscchk=scchk:return if scchk=0{ gsel 0,1 }else{ gsel 0,2 } tscchk=scchk return



BBC

リンク

2025/3/7(Fri) 19:32:28|NO.103230

MIZUSHIKI様、
ボタンをチェックボックス化するなんて思いも付きませんでした。
試しましたところ思った通りの動作となり大変助かりました。

雪月夜様
こちらの方法も今後なにか作る時に参考にさせていただきます。

MIZUSHIKI様、雪月夜様 有難う御座いました。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.103179への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2023(c) All rights reserved.