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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0505
roadonlistboxをダブルクリック4解決


roadon

リンク

2010/5/5(Wed) 15:12:02|NO.32459

listbox内の文字をダブルクリックしてmesbox内に文字を出すにはどうすればいいですか?

screen 0,300,300
c=-1
a=""
ls="list1\nlist2\nlist3"
listbox c,100,ls
mesbox a,200,100,3,300
button "出力",*rabel
stop
*rabel
if c=0 :objprm 1,"list1が選択されました"
if c=1 :objprm 1,"list2が選択されました"
if c=2 :objprm 1,"list3が選択されました"
stop
選択して出力する方法は分かったのですが
これをダブルクリックに対応するにはどうすればいいですか?
教えてください



この記事に返信する


あり

リンク

2010/5/5(Wed) 15:45:20|NO.32460

過去ログに同様の質問がありました。
http://hsp.tv/play/pforum.php?mode=pastwch&num=3313



木村

リンク

2010/5/5(Wed) 17:32:06|NO.32464

 素直にフレーム毎にlistbox命令の第1引数の値を調べるループを作って、第1引数と
1フレーム前の第1引数の値が違ったら結果を返すという手もあります。
以下は一例

screen 0,300,300 c=-1 pre_c=-1 //1フレーム前のcの値 a="" ls="list1\nlist2\nlist3" listbox c,100,ls mesbox a,200,100,3,300 goto *main *main //ループ部分 if c!pre_c : gosub *label //現在のcの値と1フレーム前のcの値が違ったら*label wait 20 goto *main *label if c=0 :objprm 1,"list1が選択されました" if c=1 :objprm 1,"list2が選択されました" if c=2 :objprm 1,"list3が選択されました" pre_c=c //1フレーム前のcの情報を更新する return



Hiroaki Software

リンク

2010/5/5(Wed) 20:19:53|NO.32466

ウィンドウメッセージを処理してはいかがでしょうか?


#define WM_COMMAND 0x0111 #define LBN_DBLCLK 2 screen 0,300,300 c=-1 a="" ls="list1\nlist2\nlist3" listbox c,100,ls lbHandle = objinfo(stat,2) mesbox a,200,100,3,300 button gosub "出力",*rabel oncmd gosub *WMCOMMAND,WM_COMMAND stop *rabel sdim item notesel ls noteget item,c objprm 1,item+"が選択されました" return *WMCOMMAND if (lparam == lbHandle){ hiword = (wparam >>16 )& 0xFFFF if (hiword == LBN_DBLCLK){ gosub *rabel } } return



roadon

リンク

2010/5/6(Thu) 13:54:05|NO.32472

みなさんアドバイスありがとうございます
おかげでできました!



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